Update changelog
[profile/ivi/rygel-gst-0-10-fullscreen-renderer.git] / src / gstreamer-legacy-renderer-plugin.c
1 /*
2  * Copyright (C) 2013 Intel Corporation
3  *
4  * This file is part of Rygel.
5  *
6  * Rygel is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU Lesser General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * Rygel is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public License
17  * along with this program; if not, write to the Free Software Foundation,
18  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
19  */
20
21 #include "gstreamer-legacy-renderer-plugin.h"
22 #include "rygel-playbin-player.h"
23
24 #define RYGEL_GSTREAMER_LEGACY_RENDERER_PLUGIN_NAME "GStreamerLegacyRendererPlugin"
25
26 enum  {
27   RYGEL_GSTREAMER_LEGACY_RENDERER_PLUGIN_DUMMY_PROPERTY
28 };
29
30 #define RYGEL_GSTREAMER_LEGACY_RENDERER_PLUGIN_TITLE "GStreamerLegacy Render Plugin"
31 #define RYGEL_GSTREAMER_LEGACY_RENDERER_PLUGIN_DESCRIPTION "An GStreamer-legacy Rygel renderer plugin implemented in C."
32
33 G_DEFINE_TYPE (RygelGStreamerLegacyRendererPlugin, rygel_gstreamer_legacy_renderer_plugin, RYGEL_TYPE_MEDIA_RENDERER_PLUGIN)
34
35 void
36 module_init (RygelPluginLoader* loader) {
37   RygelGStreamerLegacyRendererPlugin* plugin;
38
39   g_return_if_fail (loader != NULL);
40
41   if (rygel_plugin_loader_plugin_disabled (loader, RYGEL_GSTREAMER_LEGACY_RENDERER_PLUGIN_NAME)) {
42     g_message ("Plugin '%s' disabled by user. Ignoring.",
43       RYGEL_GSTREAMER_LEGACY_RENDERER_PLUGIN_NAME);
44     return;
45   }
46
47   plugin = rygel_gstreamer_legacy_renderer_plugin_new ();
48   rygel_plugin_loader_add_plugin (loader, RYGEL_PLUGIN (plugin));
49   g_object_unref (plugin);
50 }
51
52
53 static RygelGStreamerLegacyRendererPlugin*
54 rygel_gstreamer_legacy_renderer_plugin_construct (GType object_type) {
55   RygelGStreamerLegacyRendererPlugin *self;
56
57   self = (RygelGStreamerLegacyRendererPlugin*) rygel_media_renderer_plugin_construct (object_type,
58     RYGEL_GSTREAMER_LEGACY_RENDERER_PLUGIN_NAME, NULL, RYGEL_GSTREAMER_LEGACY_RENDERER_PLUGIN_DESCRIPTION,
59     RYGEL_PLUGIN_CAPABILITIES_NONE);
60
61   return self;
62 }
63
64
65 RygelGStreamerLegacyRendererPlugin*
66 rygel_gstreamer_legacy_renderer_plugin_new (void) {
67   return rygel_gstreamer_legacy_renderer_plugin_construct (RYGEL_GSTREAMER_LEGACY_TYPE_RENDERER_PLUGIN);
68 }
69
70
71 static RygelMediaPlayer *
72 rygel_gstreamer_legacy_renderer_plugin_get_player (RygelMediaRendererPlugin* plugin G_GNUC_UNUSED)
73 {
74     return RYGEL_MEDIA_PLAYER (rygel_playbin_player_get_default ());
75 }
76
77 static void
78 rygel_gstreamer_legacy_renderer_plugin_class_init (RygelGStreamerLegacyRendererPluginClass *klass) {
79     RygelMediaRendererPluginClass *plugin_class;
80
81     plugin_class = RYGEL_MEDIA_RENDERER_PLUGIN_CLASS (klass);
82     plugin_class->get_player = rygel_gstreamer_legacy_renderer_plugin_get_player;
83 }
84
85
86 static void
87 rygel_gstreamer_legacy_renderer_plugin_init (RygelGStreamerLegacyRendererPlugin *self G_GNUC_UNUSED) {
88 }