+++ /dev/null
-/*
- * This file is a part of MAFW
- *
- * Copyright (C) 2007, 2008, 2009 Nokia Corporation, all rights reserved.
- *
- * Contact: Visa Smolander <visa.smolander@nokia.com>
- *
- * 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
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <stdlib.h>
-#include <string.h>
-
-#include <libmafw/mafw-playlist.h>
-#include "mafw-mock-playlist.h"
-
-static GList *pl_list;
-static gchar *pl_name;
-static gboolean pl_rep;
-static gboolean pl_shuffle;
-
-/* Item manipulation */
-
-static gboolean mafw_mock_playlist_insert_item(MafwPlaylist *playlist,
- guint index,
- const gchar *objectid,
- GError **error);
-
-static gboolean mafw_mock_playlist_remove_item(MafwPlaylist *playlist,
- guint index,
- GError **error);
-
-static gchar *mafw_mock_playlist_get_item(MafwPlaylist *playlist,
- guint index, GError **error);
-
-static gboolean mafw_mock_playlist_move_item(MafwPlaylist *playlist,
- guint from, guint to,
- GError **error);
-
-static guint mafw_mock_playlist_get_size(MafwPlaylist *playlist,
- GError **error);
-
-static gboolean mafw_mock_playlist_clear(MafwPlaylist *playlist,
- GError **error);
-
-static gboolean mafw_mock_playlist_increment_use_count(MafwPlaylist *playlist,
- GError **error);
-
-static gboolean mafw_mock_playlist_decrement_use_count(MafwPlaylist *playlist,
- GError **error);
-gboolean mafw_mock_playlist_get_prev(MafwPlaylist *playlist, guint *index,
- gchar **object_id, GError **error);
-gboolean mafw_mock_playlist_get_next(MafwPlaylist *playlist, guint *index,
- gchar **object_id, GError **error);
-static void mafw_mock_playlist_get_starting_index(MafwPlaylist *playlist, guint *index,
- gchar **object_id, GError **error);
-static void mafw_mock_playlist_get_last_index(MafwPlaylist *playlist,
- guint *index, gchar **object_id,
- GError **error);
-
-enum {
- PROP_0,
- PROP_NAME,
- PROP_REPEAT,
- PROP_IS_SHUFFLED,
-};
-
-static void set_prop(MafwMockPlaylist *playlist, guint prop,
- const GValue *value, GParamSpec *spec)
-{
- if (prop == PROP_NAME) {
- pl_name = g_value_dup_string(value);
- } else if (prop == PROP_REPEAT) {
- pl_rep = g_value_get_boolean(value);
- } else
- G_OBJECT_WARN_INVALID_PROPERTY_ID(playlist, prop, spec);
-}
-
-static void get_prop(MafwMockPlaylist *playlist, guint prop,
- GValue *value, GParamSpec *spec)
-{
- if (prop == PROP_NAME) {
- g_value_take_string(value, pl_name);
- } else if (prop == PROP_REPEAT) {
- g_value_set_boolean(value, pl_rep);
- } else if (prop == PROP_IS_SHUFFLED) {
- g_value_set_boolean(value, pl_shuffle);
- } else
- G_OBJECT_WARN_INVALID_PROPERTY_ID(playlist, prop, spec);
-}
-
-static void mafw_mock_playlist_get_starting_index(MafwPlaylist *playlist, guint *index,
- gchar **object_id, GError **error)
-{
- if (g_list_length(pl_list) > 0) {
- *index = 0;
- *object_id = g_strdup(g_list_nth_data(pl_list, 0));
- }
-}
-
-static void mafw_mock_playlist_get_last_index(MafwPlaylist *playlist,
- guint *index, gchar **object_id,
- GError **error)
-{
- *index = g_list_length(pl_list) - 1;
- *object_id = g_strdup(g_list_nth_data(pl_list, *index));
-}
-
-
-gboolean mafw_mock_playlist_get_next(MafwPlaylist *playlist, guint *index,
- gchar **object_id, GError **error)
-{
- gint size;
- gboolean return_value = TRUE;
-
- size = g_list_length(pl_list);
-
- g_return_val_if_fail(size != 0, FALSE);
-
- if (*index == (size - 1)) {
- return_value = FALSE;
- } else {
- *object_id = g_strdup(g_list_nth_data(pl_list, ++(*index)));
- }
-
- return return_value;
-}
-
-gboolean mafw_mock_playlist_get_prev(MafwPlaylist *playlist, guint *index,
- gchar **object_id, GError **error)
-{
- gint size;
- gboolean return_value = TRUE;
-
- size = g_list_length(pl_list);
-
- g_return_val_if_fail(size != 0, FALSE);
-
- if (*index == 0) {
- return_value = FALSE;
- } else {
- *object_id = g_strdup(g_list_nth_data(pl_list, --(*index)));
- }
-
- return return_value;
-}
-
-static void playlist_iface_init(MafwPlaylistIface *iface)
-{
- iface->get_item = mafw_mock_playlist_get_item;
- iface->insert_item = mafw_mock_playlist_insert_item;
- iface->clear = mafw_mock_playlist_clear;
- iface->get_size = mafw_mock_playlist_get_size;
- iface->remove_item = mafw_mock_playlist_remove_item;
- iface->move_item = mafw_mock_playlist_move_item;
- iface->get_starting_index = mafw_mock_playlist_get_starting_index;
- iface->get_last_index = mafw_mock_playlist_get_last_index;
- iface->get_next = mafw_mock_playlist_get_next;
- iface->get_prev = mafw_mock_playlist_get_prev;
- iface->increment_use_count = mafw_mock_playlist_increment_use_count;
- iface->decrement_use_count = mafw_mock_playlist_decrement_use_count;
-}
-
-
-static void mafw_mock_playlist_finalize(GObject *object)
-{
- g_debug(__FUNCTION__);
-
- while (pl_list)
- {
- g_free(pl_list->data);
- pl_list = g_list_delete_link(pl_list, pl_list);
- }
-
-}
-
-static void mafw_mock_playlist_class_init(
- MafwMockPlaylistClass *klass)
-{
- GObjectClass *oclass = NULL;
-
- oclass = G_OBJECT_CLASS(klass);
-
- oclass->set_property = (gpointer)set_prop;
- oclass->get_property = (gpointer)get_prop;
- g_object_class_override_property(oclass, PROP_NAME, "name");
- g_object_class_override_property(oclass, PROP_REPEAT, "repeat");
- g_object_class_override_property(oclass,
- PROP_IS_SHUFFLED, "is-shuffled");
-
- oclass -> finalize = mafw_mock_playlist_finalize;
-}
-
-static void mafw_mock_playlist_init(MafwMockPlaylist *self)
-{
-}
-
-
-
-G_DEFINE_TYPE_WITH_CODE(MafwMockPlaylist, mafw_mock_playlist,
- G_TYPE_OBJECT,
- G_IMPLEMENT_INTERFACE(MAFW_TYPE_PLAYLIST,
- playlist_iface_init));
-
-
-GObject *mafw_mock_playlist_new(void)
-{
- MafwMockPlaylist *self;
-
- self = g_object_new(MAFW_TYPE_MOCK_PLAYLIST, NULL);
-
- return G_OBJECT(self);
-}
-
-gboolean mafw_mock_playlist_insert_item(MafwPlaylist *self, guint index,
- const gchar *objectid,
- GError **error)
-{
- pl_list = g_list_insert(pl_list, g_strdup(objectid), index);
-
- g_signal_emit_by_name(self, "contents-changed", index, 0, 1);
-
- return TRUE;
-}
-
-gboolean mafw_mock_playlist_remove_item(MafwPlaylist *self, guint index,
- GError **error)
-{
- GList *element;
-
- g_return_val_if_fail(g_list_length(pl_list) > 0, FALSE);
-
- element = g_list_nth(pl_list, index);
- g_free(element->data);
- pl_list = g_list_delete_link(pl_list, element);
-
- g_signal_emit_by_name(self, "contents-changed", index, 1, 0);
-
- return TRUE;
-}
-
-gchar *mafw_mock_playlist_get_item(MafwPlaylist *self, guint index,
- GError **error)
-{
- gchar *oid = g_list_nth_data(pl_list, index);
-
- if (oid)
- oid = g_strdup(oid);
-
- return oid;
-}
-
-guint mafw_mock_playlist_get_size(MafwPlaylist *self, GError **error)
-{
- return g_list_length(pl_list);
-}
-
-static gboolean mafw_mock_playlist_move_item(MafwPlaylist *playlist,
- guint from, guint to,
- GError **error)
-{
- GList *element_from, *element_to;
- gpointer data;
- gint size;
-
- size = g_list_length(pl_list);
-
- g_return_val_if_fail(size > 0, FALSE);
- g_return_val_if_fail(from != to, FALSE);
- g_return_val_if_fail((from < size) && (to < size), FALSE);
-
- element_from = g_list_nth(pl_list, from);
- element_to = g_list_nth(pl_list, to);
-
- data = element_from->data;
- element_from->data = element_to->data;
- element_to->data = data;
-
- g_signal_emit_by_name(playlist, "item-moved", from, to);
-
- return TRUE;
-}
-
-static gboolean mafw_mock_playlist_increment_use_count(MafwPlaylist *playlist,
- GError **error)
-{
- return TRUE;
-}
-
-static gboolean mafw_mock_playlist_decrement_use_count(MafwPlaylist *playlist,
- GError **error)
-{
- return TRUE;
-}
-
-gboolean mafw_mock_playlist_clear(MafwPlaylist *self, GError **error)
-{
- mafw_mock_playlist_finalize(NULL);
-
- return TRUE;
-}
-
-/* vi: set noexpandtab ts=8 sw=8 cino=t0,(0: */