X-Git-Url: http://git.maemo.org/git/?p=mafwsubrenderer;a=blobdiff_plain;f=mafw-gst-subtitles-renderer%2Flibmafw-gst-renderer%2Fmafw-playlist-iterator.h;fp=mafw-gst-subtitles-renderer%2Flibmafw-gst-renderer%2Fmafw-playlist-iterator.h;h=6e88360e880f42af43c2874e6bbc0b00b99bc334;hp=0000000000000000000000000000000000000000;hb=be2c98fb83895d10ac44af7b9a9c3e00ca54bf49;hpb=c2bbb2bb3bead80144e2dda3ccd40599e4a2b48d diff --git a/mafw-gst-subtitles-renderer/libmafw-gst-renderer/mafw-playlist-iterator.h b/mafw-gst-subtitles-renderer/libmafw-gst-renderer/mafw-playlist-iterator.h new file mode 100644 index 0000000..6e88360 --- /dev/null +++ b/mafw-gst-subtitles-renderer/libmafw-gst-renderer/mafw-playlist-iterator.h @@ -0,0 +1,95 @@ +/* + * This file is a part of MAFW + * + * Copyright (C) 2007, 2008, 2009 Nokia Corporation, all rights reserved. + * + * Contact: Visa Smolander + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; version 2.1 of + * the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + * 02110-1301 USA + * + */ + +#ifndef MAFW_PLAYLIST_ITERATOR_H +#define MAFW_PLAYLIST_ITERATOR_H + +#include +#include + +G_BEGIN_DECLS + +typedef struct _MafwPlaylistIteratorPrivate MafwPlaylistIteratorPrivate; + +typedef struct { + GObject g_object; + + MafwPlaylistIteratorPrivate *priv; +} MafwPlaylistIterator; + +typedef struct { + GObjectClass g_object_class; + + /* Signals */ + void (*playlist_changed)(MafwPlaylistIterator *iterator, + gboolean current_item_changed, + GQuark domain, gint code, const gchar *message); +} MafwPlaylistIteratorClass; + +typedef enum { + MAFW_PLAYLIST_ITERATOR_MOVE_RESULT_OK, + MAFW_PLAYLIST_ITERATOR_MOVE_RESULT_LIMIT, + MAFW_PLAYLIST_ITERATOR_MOVE_RESULT_INVALID, + MAFW_PLAYLIST_ITERATOR_MOVE_RESULT_ERROR, +} MafwPlaylistIteratorMovementResult; + +#define MAFW_TYPE_PLAYLIST_ITERATOR \ + (mafw_playlist_iterator_get_type()) +#define MAFW_PLAYLIST_ITERATOR(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), MAFW_TYPE_PLAYLIST_ITERATOR, MafwPlaylistIterator)) +#define MAFW_IS_PLAYLIST_ITERATOR(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj), MAFW_TYPE_PLAYLIST_ITERATOR)) +#define MAFW_PLAYLIST_ITERATOR_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), MAFW_TYPE_PLAYLIST_ITERATOR, MafwPlaylistIterator)) +#define MAFW_PLAYLIST_ITERATOR_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), MAFW_TYPE_PLAYLIST_ITERATOR, \ + MafwPlaylistIteratorClass)) +#define MAFW_IS_PLAYLIST_ITERATOR_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), MAFW_TYPE_PLAYLIST_ITERATOR)) + +G_END_DECLS + +GType mafw_playlist_iterator_get_type(void); +MafwPlaylistIterator *mafw_playlist_iterator_new(void); +void mafw_playlist_iterator_initialize(MafwPlaylistIterator *iterator, + MafwPlaylist *playlist, + GError **error); +void mafw_playlist_iterator_invalidate(MafwPlaylistIterator *iterator); +gboolean mafw_playlist_iterator_is_valid(MafwPlaylistIterator *iterator); +void mafw_playlist_iterator_reset(MafwPlaylistIterator *iterator, GError **error); +void mafw_playlist_iterator_move_to_last(MafwPlaylistIterator *iterator, GError **error); +MafwPlaylistIteratorMovementResult mafw_playlist_iterator_move_to_next(MafwPlaylistIterator *iterator, + GError **error); +MafwPlaylistIteratorMovementResult mafw_playlist_iterator_move_to_prev(MafwPlaylistIterator *iterator, + GError **error); +MafwPlaylistIteratorMovementResult mafw_playlist_iterator_move_to_index(MafwPlaylistIterator *iterator, + gint index, + GError **error); +void mafw_playlist_iterator_update(MafwPlaylistIterator *iterator, GError **error); +const gchar *mafw_playlist_iterator_get_current_objectid(MafwPlaylistIterator *iterator); +gint mafw_playlist_iterator_get_current_index(MafwPlaylistIterator *iterator); +gint mafw_playlist_iterator_get_size(MafwPlaylistIterator *iterator, + GError **error); + +#endif