Added qmafw-gst-subtitles-renderer-0.0.55 for Meego Harmattan 1.2
[mafwsubrenderer] / qmafw-gst-subtitles-renderer / unittests / common / renderer-worker-stub.c
diff --git a/qmafw-gst-subtitles-renderer/unittests/common/renderer-worker-stub.c b/qmafw-gst-subtitles-renderer/unittests/common/renderer-worker-stub.c
new file mode 100644 (file)
index 0000000..b8deb3d
--- /dev/null
@@ -0,0 +1,380 @@
+/*
+ * This file is part of QMAFW
+ *
+ * Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). All rights
+ * reserved.
+ *
+ * Contact: Visa Smolander <visa.smolander@nokia.com>
+ *
+ * This software, including documentation, is protected by copyright controlled
+ * by Nokia Corporation. All rights are reserved. Copying, including
+ * reproducing, storing, adapting or translating, any or all of this material
+ * requires the prior written consent of Nokia Corporation. This material also
+ * contains confidential information which may not be disclosed to others
+ * without the prior written consent of Nokia.
+ *
+ */
+
+#include <string.h> //memset
+#include "mafw-gst-renderer-worker.h"
+#include "mafw-gst-renderer-utils.h"
+
+GError* global_error = 0;
+gint global_position = 0;
+gint global_worker_audio_destination = -1;
+gint global_worker_video_destination = -1;
+gchar *global_worker_uri = 0;
+gint global_worker_stop_called = 0;
+gint global_worker_seek_request = 0;
+GSList *global_worker_destinations = NULL;
+guint global_ready_timeout = 99999;
+
+guint m_volume;
+gboolean m_mute;
+gboolean m_current_frame_on_pause;
+gboolean m_force_aspect_ratio;
+gfloat m_playback_speed = 1;
+XID m_xid;
+
+render_rectangle m_render_rectangle;
+configuration *current_worker_conf;
+
+
+gboolean global_worker_playing = FALSE;
+
+#define UNUSED(x) (void)(x)
+
+void mafw_gst_renderer_worker_set_volume(MafwGstRendererWorker *worker,
+                                         guint volume)
+{
+    UNUSED(worker);
+    m_volume = volume;
+}
+
+guint mafw_gst_renderer_worker_get_volume(MafwGstRendererWorker *worker)
+{
+    UNUSED(worker);
+    return m_volume;
+}
+
+void mafw_gst_renderer_worker_set_mute(MafwGstRendererWorker *worker,
+                                       gboolean mute)
+{
+    UNUSED(worker);
+    m_mute = mute;
+}
+
+gboolean mafw_gst_renderer_worker_get_mute(MafwGstRendererWorker *worker)
+{
+    UNUSED(worker);
+    return m_mute;
+}
+
+gint64 mafw_gst_renderer_worker_get_last_known_duration(MafwGstRendererWorker *worker)
+{
+    UNUSED(worker);
+    return 10;
+}
+
+const char* mafw_gst_renderer_worker_get_uri(MafwGstRendererWorker *worker)
+{
+    UNUSED(worker);
+    return global_worker_uri;
+}
+
+gboolean mafw_gst_renderer_worker_get_seekable(MafwGstRendererWorker *worker)
+{
+    UNUSED(worker);
+    return TRUE;
+}
+
+void _free_configuration(configuration *config)
+{
+    if( !config )
+    {
+        return;
+    }
+
+    if( config->asink )
+    {
+        g_free(config->asink);
+    }
+    if( config->vsink )
+    {
+        g_free(config->vsink);
+    }
+
+    g_free(config);
+}
+
+void mafw_gst_renderer_worker_set_current_frame_on_pause(
+    MafwGstRendererWorker *worker,
+    gboolean current_frame_on_pause)
+{
+    UNUSED(worker);
+    m_current_frame_on_pause = current_frame_on_pause;
+}
+
+gboolean mafw_gst_renderer_worker_get_current_frame_on_pause(
+    MafwGstRendererWorker *worker)
+{
+    UNUSED(worker);
+    return m_current_frame_on_pause;
+}
+
+void mafw_gst_renderer_worker_set_position(MafwGstRendererWorker *worker,
+                                           GstSeekType seek_type,
+                                           gint position, GError **error)
+{
+    UNUSED(worker);
+    UNUSED(seek_type);
+    global_worker_seek_request = position;
+    *error = global_error;
+}
+
+gint mafw_gst_renderer_worker_get_position(MafwGstRendererWorker *worker)
+{
+    UNUSED(worker);
+    return global_position;
+}
+
+void mafw_gst_renderer_worker_set_xid(MafwGstRendererWorker *worker, XID xid)
+{
+    UNUSED(worker);
+    m_xid = xid;
+}
+
+gboolean mafw_gst_renderer_worker_get_streaming(MafwGstRendererWorker *worker)
+{
+    return uri_is_stream(global_worker_uri);
+}
+
+XID mafw_gst_renderer_worker_get_xid(MafwGstRendererWorker *worker)
+{
+    UNUSED(worker);
+    return m_xid;
+}
+
+
+void mafw_gst_renderer_worker_set_render_rectangle(MafwGstRendererWorker *worker, render_rectangle *rect)
+{
+    UNUSED(worker);
+    m_render_rectangle.x = rect->x;
+    m_render_rectangle.y = rect->y;
+    m_render_rectangle.width = rect->width;
+    m_render_rectangle.height = rect->height;
+}
+
+const render_rectangle* mafw_gst_renderer_worker_get_render_rectangle(MafwGstRendererWorker *worker)
+{
+    UNUSED(worker);
+    return &m_render_rectangle;
+}
+
+
+gboolean mafw_gst_renderer_worker_get_autopaint(MafwGstRendererWorker *worker)
+{
+    UNUSED(worker);
+    return TRUE;
+}
+
+void mafw_gst_renderer_worker_set_ready_timeout(MafwGstRendererWorker *worker,
+                                                guint seconds)
+{
+    UNUSED(worker);
+    global_ready_timeout = seconds;
+}
+
+void mafw_gst_renderer_worker_set_autopaint(MafwGstRendererWorker *worker,
+                                            gboolean autopaint)
+{
+    UNUSED(worker);
+    UNUSED(autopaint);
+}
+
+gint mafw_gst_renderer_worker_get_colorkey(MafwGstRendererWorker *worker)
+{
+    UNUSED(worker);
+    return 1;
+}
+
+void mafw_gst_renderer_worker_play(MafwGstRendererWorker *worker,
+                                   const gchar *uri)
+{
+    UNUSED(worker);
+    UNUSED(uri);
+    global_worker_playing = TRUE;
+    g_free(global_worker_uri);
+    global_worker_uri = g_strdup(uri);
+    worker->notify_play_handler(worker, worker->owner);
+}
+
+void mafw_gst_renderer_worker_stop(MafwGstRendererWorker *worker)
+{
+    UNUSED(worker);
+    global_worker_playing = FALSE;
+    ++global_worker_stop_called;
+
+    g_free(global_worker_uri);
+    global_worker_uri = NULL;
+}
+
+void mafw_gst_renderer_worker_pause(MafwGstRendererWorker *worker)
+{
+    UNUSED(worker);
+    global_worker_playing = FALSE;
+    worker->notify_pause_handler(worker, worker->owner);
+}
+
+void mafw_gst_renderer_worker_pause_at(MafwGstRendererWorker *worker, guint position)
+{
+    UNUSED(worker);
+    UNUSED(position);
+}
+
+void mafw_gst_renderer_worker_resume(MafwGstRendererWorker *worker)
+{
+    UNUSED(worker);
+}
+
+MafwGstRendererWorker *mafw_gst_renderer_worker_new(gpointer owner)
+{
+    MafwGstRendererWorker *newWorker = g_new0(MafwGstRendererWorker, 1);
+    newWorker->owner = owner;
+    newWorker->config = g_new0(configuration, 1);
+    return newWorker;
+}
+
+void mafw_gst_renderer_worker_exit(MafwGstRendererWorker *worker)
+{
+    if( worker )
+    {
+        _free_configuration(worker->config);
+        worker->config = NULL;
+    }
+}
+
+gboolean mafw_gst_renderer_worker_set_playback_speed(MafwGstRendererWorker *worker, gfloat speed)
+{
+    UNUSED(worker);
+
+    if(!global_worker_playing)
+    {
+        return FALSE;
+    }
+
+    m_playback_speed = speed;
+
+    GValue v;
+    memset(&v, 0, sizeof(GValue));
+    g_value_init(&v, G_TYPE_FLOAT);
+    g_value_set_float(&v, m_playback_speed);
+
+    worker->notify_property_handler(worker, worker->owner, WORKER_PROPERTY_PLAYBACK_SPEED, &v);
+    g_value_unset(&v);
+
+    return TRUE;
+}
+
+gfloat mafw_gst_renderer_worker_get_playback_speed(MafwGstRendererWorker *worker)
+{
+    UNUSED(worker);
+    return m_playback_speed;
+}
+
+void mafw_gst_renderer_worker_set_force_aspect_ratio(MafwGstRendererWorker *worker, gboolean force)
+{
+    UNUSED(worker);
+    m_force_aspect_ratio = force;
+}
+
+gboolean mafw_gst_renderer_worker_get_force_aspect_ratio(MafwGstRendererWorker *worker)
+{
+    UNUSED(worker);
+    return m_force_aspect_ratio;
+}
+
+void mafw_gst_renderer_worker_notify_media_destination(MafwGstRendererWorker *worker,
+                                                       GSList *destination)
+{
+    UNUSED(worker);
+    g_slist_free(global_worker_destinations);
+    global_worker_destinations = g_slist_copy(destination);
+}
+
+configuration* mafw_gst_renderer_worker_create_default_configuration(MafwGstRendererWorker *worker)
+{
+    configuration *config = g_malloc0(sizeof(configuration));
+    config->asink = g_strdup("pulsesink");
+    config->vsink = g_strdup("omapxvsink");
+    config->flags = 67;
+    config->buffer_time = 300000;
+    config->latency_time = 100000;
+
+    /* timers */
+    config->milliseconds_to_pause_frame = 1000;
+    config->seconds_to_pause_to_ready = 3;
+
+    /* dhmmixer */
+    config->use_dhmmixer = TRUE;
+
+    config->mobile_surround_music.state = 0;
+    config->mobile_surround_music.room = 2;
+    config->mobile_surround_music.color = 2;
+    config->mobile_surround_video.state = 0;
+    config->mobile_surround_video.room = 2;
+    config->mobile_surround_video.color = 2;
+
+    return config;
+}
+
+void mafw_gst_renderer_worker_set_configuration(MafwGstRendererWorker *worker, configuration *config)
+{
+    if( worker->config )
+    {
+        _free_configuration(worker->config);
+    }
+    worker->config = config;
+    current_worker_conf = config;
+}
+
+void set_dolby_music_property(MafwGstRendererWorker *worker, guint prop)
+{
+    worker->config->mobile_surround_music.state = prop;
+}
+
+void set_dolby_music_sound_property(MafwGstRendererWorker *worker, gint prop, gboolean isRoomProperty)
+{
+    if (isRoomProperty)
+    {
+        worker->config->mobile_surround_music.room = prop;
+    }
+    else
+    {
+        worker->config->mobile_surround_music.color = prop;
+    }
+}
+
+void set_dolby_video_property(MafwGstRendererWorker *worker, guint prop)
+{
+    worker->config->mobile_surround_video.state = prop;
+}
+
+void set_dolby_video_sound_property(MafwGstRendererWorker *worker, gint prop, gboolean isRoomProperty)
+{
+    if (isRoomProperty)
+    {
+        worker->config->mobile_surround_video.room = prop;
+    }
+    else
+    {
+        worker->config->mobile_surround_video.color = prop;
+    }
+}
+
+gint64 mafw_gst_renderer_worker_get_duration(MafwGstRendererWorker *worker)
+{
+    UNUSED(worker);
+
+    return 0;
+}