DVB Daemon will soon be implementing D-Bus MediaServer spec.
[ --enable-tracker-plugin build tracker plugin],,
enable_tracker_plugin=yes)
-# Build DVB plugin
-AC_ARG_ENABLE(dvb-plugin,
- [ --enable-dvb-plugin build DVB plugin],,
- enable_dvb_plugin=yes)
-
# Build MediaExport plugin
AC_ARG_ENABLE(media-export-plugin,
[ --enable-media-export-plugin build MediaExport plugin],,
AM_CONDITIONAL([BUILD_TEST_PLUGIN], [test "x$enable_test_plugin" = "xyes"])
AM_CONDITIONAL([BUILD_TRACKER_PLUGIN],
[test "x$enable_tracker_plugin" = "xyes"])
-AM_CONDITIONAL([BUILD_DVB_PLUGIN], [test "x$enable_dvb_plugin" = "xyes"])
AM_CONDITIONAL([BUILD_MEDIATHEK_PLUGIN], [test "x$enable_mediathek_plugin" = "xyes"])
AM_CONDITIONAL([BUILD_MEDIA_EXPORT_PLUGIN], [test "x$enable_media_export_plugin" = "xyes"])
AM_CONDITIONAL([BUILD_EXTERNAL_PLUGIN], [test "x$enable_external_plugin" = "xyes"])
src/rygel/Makefile
src/ui/Makefile
src/plugins/Makefile
-src/plugins/dvb/Makefile
src/plugins/media-export/Makefile
src/plugins/external/Makefile
src/plugins/mediathek/Makefile
<child>
<object class="GtkTable" id="table4">
<property name="visible">True</property>
- <property name="n_rows">10</property>
+ <property name="n_rows">8</property>
<property name="n_columns">2</property>
<property name="column_spacing">6</property>
<property name="row_spacing">6</property>
</packing>
</child>
<child>
- <object class="GtkCheckButton" id="dvb-enabled-checkbutton">
- <property name="label" translatable="yes">_DVB</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
- </object>
- <packing>
- <property name="top_attach">8</property>
- <property name="bottom_attach">9</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="dvb-title-label">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="xpad">12</property>
- <property name="label" translatable="yes">Tit_le</property>
- <property name="use_underline">True</property>
- </object>
- <packing>
- <property name="top_attach">9</property>
- <property name="bottom_attach">10</property>
- </packing>
- </child>
- <child>
- <object class="GtkEntry" id="dvb-title-entry">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="tooltip_text" translatable="yes">Write %u for username, %n for real name of the user and %h for host name</property>
- <property name="invisible_char">●</property>
- <property name="width_chars">30</property>
- <property name="invisible_char_set">True</property>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">9</property>
- <property name="bottom_attach">10</property>
- </packing>
- </child>
- <child>
<object class="GtkLabel" id="uris-label">
<property name="visible">True</property>
<property name="xalign">0</property>
<child>
<placeholder/>
</child>
- <child>
- <placeholder/>
- </child>
</object>
</child>
</object>
<property name="transient_for">preferences-dialog</property>
<property name="has_separator">False</property>
<property name="local_only">False</property>
- <property name="action">select-folder</property>
<property name="select_multiple">True</property>
+ <property name="action">select-folder</property>
<child internal-child="vbox">
<object class="GtkVBox" id="dialog-vbox2">
<property name="visible">True</property>
</locale>
</schema>
<schema>
- <key>/schemas/apps/rygel/DVB/enabled</key>
- <applyto>/apps/rygel/DVB/enabled</applyto>
- <owner>rygel</owner>
- <type>bool</type>
- <default>TRUE</default>
- <locale name="C">
- <short>Enable DVB plugin</short>
- <long>Enable DVB plugin</long>
- </locale>
- </schema>
- <schema>
- <key>/schemas/apps/rygel/DVB/title</key>
- <applyto>/apps/rygel/DVB/title</applyto>
- <owner>rygel</owner>
- <type>string</type>
- <default>Digital TV</default>
- <locale name="C">
- <short>The title of this plugin to advertise to UPnP clients.</short>
- <long>The title of this plugin to advertise to UPnP clients.</long>
- </locale>
- </schema>
- <schema>
<key>/schemas/apps/rygel/ZDFMediathek/enabled</key>
<applyto>/apps/rygel/ZDFMediathek/enabled</applyto>
<owner>rygel</owner>
TRACKER_PLUGIN = tracker
endif
-if BUILD_DVB_PLUGIN
-DVB_PLUGIN = dvb
-endif
-
if BUILD_MEDIATHEK_PLUGIN
MEDIATHEK_PLUGIN = mediathek
endif
SUBDIRS = $(TEST_PLUGIN) \
$(TRACKER_PLUGIN) \
- $(DVB_PLUGIN) \
$(MEDIATHEK_PLUGIN) \
$(MEDIA_EXPORT_PLUGIN) \
$(EXTERNAL_PLUGIN)
+++ /dev/null
-plugindir = $(libdir)/rygel-1.0
-
-plugin_LTLIBRARIES = librygel-dvb.la
-
-AM_CFLAGS = $(LIBGUPNP_CFLAGS) \
- $(LIBGUPNP_AV_CFLAGS) \
- $(LIBDBUS_GLIB_CFLAGS) \
- $(GEE_CFLAGS) \
- $(LIBGSTREAMER_CFLAGS) \
- $(LIBGCONF_CFLAGS) \
- -I$(top_srcdir)/src/rygel -DDATA_DIR='"$(datadir)"'
-
-BUILT_SOURCES = rygel-dvb-content-dir.c \
- rygel-dvb-root-container.c \
- rygel-dvb-channel-group.c \
- rygel-dvb-channel.c \
- rygel-dvb-plugin.c \
- rygel-dvb-plugin-factory.c
-
-$(BUILT_SOURCES) : rygel-dvb.stamp
-
-librygel_dvb_la_SOURCES = rygel-dvb-content-dir.c \
- rygel-dvb-content-dir.vala \
- rygel-dvb-root-container.c \
- rygel-dvb-root-container.vala \
- rygel-dvb-channel-group.c \
- rygel-dvb-channel-group.vala \
- rygel-dvb-channel.c \
- rygel-dvb-channel.vala \
- rygel-dvb-plugin.c \
- rygel-dvb-plugin.vala \
- rygel-dvb-plugin-factory.c \
- rygel-dvb-plugin-factory.vala
-
-rygel-dvb.stamp: $(filter %.vala,$(librygel_dvb_la_SOURCES))
- $(VALAC) -C --vapidir=$(top_srcdir)/src/rygel \
- --pkg rygel-1.0 --pkg cstuff --pkg gupnp-1.0 --pkg gupnp-av-1.0 \
- --pkg dbus-glib-1 --pkg gee-1.0 --pkg gstreamer-0.10 --pkg gconf-2.0 \
- $^
- touch $@
-
-librygel_dvb_la_LIBADD = $(LIBGUPNP_LIBS) \
- $(LIBGUPNP_AV_LIBS) \
- $(LIBDBUS_GLIB_LIBS) \
- $(LIBGSTREAMER_LIBS) \
- $(GEE_LIBS) \
- $(LIBGCONF_LIBS)
-librygel_dvb_la_LDFLAGS = -shared -fPIC -module -avoid-version
-
-CLEANFILES = rygel-dvb.stamp
-MAINTAINERCLEANFILES = Makefile.in $(BUILT_SOURCES)
-EXTRA_DIST = $(BUILT_SOURCES) rygel-dvb.stamp
+++ /dev/null
-/*
- * Copyright (C) 2008 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>.
- * Copyright (C) 2008 Nokia Corporation.
- *
- * Author: Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
- * <zeeshan.ali@nokia.com>
- *
- * This file is part of Rygel.
- *
- * Rygel 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; either version 2 of the License, or
- * (at your option) any later version.
- *
- * Rygel 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 program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-using Rygel;
-using GUPnP;
-using DBus;
-using Gee;
-
-/**
- * Represents DVB channel group.
- */
-public class Rygel.DVBChannelGroup : MediaContainer {
- /* class-wide constants */
- private const string GID_PREFIX = "GroupID:";
-
- public static dynamic DBus.Object channel_list;
-
- /* List of channels */
- private ArrayList<DVBChannel> channels;
-
- private uint gid; /* The DVB Daemon Device Group ID */
-
- public DVBChannelGroup (uint gid,
- string title,
- MediaContainer parent,
- dynamic DBus.Object channel_list) {
- base (GID_PREFIX + gid.to_string (), // UPnP ID
- parent,
- title,
- 0);
- this.gid = gid;
- //this.upnp_class = "object.container.channelGroup";
- this.channel_list = channel_list;
-
- this.fetch_channels ();
- }
-
- public override void get_children (uint offset,
- uint max_count,
- Cancellable? cancellable,
- AsyncReadyCallback callback) {
- uint stop = offset + max_count;
- stop = stop.clamp (0, this.child_count);
-
- var channels = this.channels.slice ((int) offset, (int) stop);
-
- var res = new Rygel.SimpleAsyncResult<Gee.List<MediaObject>>
- (this, callback);
- res.data = channels;
- res.complete_in_idle ();
- }
-
- public override Gee.List<MediaObject>? get_children_finish (
- AsyncResult res)
- throws GLib.Error {
- var simple_res = (Rygel.SimpleAsyncResult<Gee.List<MediaObject>>) res;
- return simple_res.data;
- }
-
- public override void find_object (string id,
- Cancellable? cancellable,
- AsyncReadyCallback callback) {
- MediaObject channel = null;
- foreach (var tmp in this.channels) {
- if (tmp.id == id) {
- channel = tmp;
- break;
- }
- }
-
- var res = new Rygel.SimpleAsyncResult<MediaObject> (this, callback);
-
- res.data = channel;
- res.complete_in_idle ();
- }
-
- public override MediaObject? find_object_finish (AsyncResult res)
- throws GLib.Error {
- var simple_res = (Rygel.SimpleAsyncResult<MediaObject>) res;
- return simple_res.data;
- }
-
- public MediaObject? find_object_sync (string id) {
- MediaObject channel = null;
- foreach (var tmp in this.channels) {
- if (tmp.id == id) {
- channel = tmp;
- break;
- }
- }
-
- return channel;
- }
-
- private void fetch_channels () {
- this.channels = new ArrayList<DVBChannel> ();
-
- DBus.Connection connection;
- try {
- connection = DBus.Bus.get (DBus.BusType.SESSION);
- } catch (DBus.Error error) {
- critical ("Failed to connect to Session bus: %s\n",
- error.message);
- return;
- }
-
- uint[] channel_ids = null;
-
- try {
- channel_ids = this.channel_list.GetChannels ();
- } catch (GLib.Error error) {
- critical ("error: %s", error.message);
- return;
- }
-
- foreach (uint channel_id in channel_ids) {
- // Create Channels
- try {
- var channel = new DVBChannel (channel_id,
- this,
- channel_list);
- this.channels.add (channel);
- } catch (GLib.Error error) {
- critical ("Failed to create DVB Channel object: %s",
- error.message);
- }
- }
-
- this.child_count = this.channels.size;
- }
-}
-
+++ /dev/null
-/*
- * Copyright (C) 2008 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>.
- * Copyright (C) 2008 Nokia Corporation.
- *
- * Author: Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
- * <zeeshan.ali@nokia.com>
- *
- * This file is part of Rygel.
- *
- * Rygel 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; either version 2 of the License, or
- * (at your option) any later version.
- *
- * Rygel 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 program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-using Rygel;
-using GUPnP;
-using DBus;
-
-/**
- * Represents DVB item.
- */
-public class Rygel.DVBChannel : MediaItem {
- public static dynamic DBus.Object channel_list;
-
- private uint cid; /* The DVB Daemon Channel ID */
-
- public DVBChannel (uint cid,
- MediaContainer parent,
- dynamic DBus.Object channel_list) throws GLib.Error {
- string id = parent.id + ":" + cid.to_string (); /* UPnP ID */
-
- base (id,
- parent,
- "Unknown", /* Title Unknown at this point */
- "Unknown"); /* UPnP Class Unknown at this point */
-
- this.cid = cid;
- this.channel_list = channel_list;
-
- this.fetch_metadata ();
- }
-
- public void fetch_metadata () throws GLib.Error {
- /* TODO: make this async */
- this.title = this.channel_list.GetChannelName (cid);
-
- bool is_radio = this.channel_list.IsRadioChannel (cid);
- if (is_radio) {
- this.upnp_class = "object.item.audioItem.audioBroadcast";
- } else {
- this.upnp_class = "object.item.videoItem.videoBroadcast";
- }
-
- this.mime_type = "video/mpeg";
- string uri = this.channel_list.GetChannelURL (cid);
- this.uris.add (uri);
- }
-}
-
+++ /dev/null
-/*
- * Copyright (C) 2008 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>.
- * Copyright (C) 2008 Nokia Corporation.
- *
- * Author: Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
- * <zeeshan.ali@nokia.com>
- *
- * This file is part of Rygel.
- *
- * Rygel 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; either version 2 of the License, or
- * (at your option) any later version.
- *
- * Rygel 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 program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-using Rygel;
-using GUPnP;
-using DBus;
-using Gee;
-
-/**
- * Implementation of DVB ContentDirectory service.
- */
-public class Rygel.DVBContentDir : ContentDirectory {
- // Pubic methods
- public override MediaContainer? create_root_container () {
- string friendly_name = this.root_device.get_friendly_name ();
- return new DVBRootContainer (friendly_name);
- }
-}
-
+++ /dev/null
-/*
- * Copyright (C) 2009 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>.
- * Copyright (C) 2009 Nokia Corporation.
- *
- * Author: Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
- * <zeeshan.ali@nokia.com>
- *
- * This file is part of Rygel.
- *
- * Rygel 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; either version 2 of the License, or
- * (at your option) any later version.
- *
- * Rygel 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 program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-using Rygel;
-using Gee;
-using CStuff;
-
-private DVBPluginFactory plugin_factory;
-
-[ModuleInit]
-public void module_init (PluginLoader loader) {
- try {
- plugin_factory = new DVBPluginFactory (loader);
- } catch (DBus.Error error) {
- critical ("Failed to fetch list of external services: %s\n",
- error.message);
- }
-}
-
-public class DVBPluginFactory {
- private const string DBUS_SERVICE = "org.freedesktop.DBus";
- private const string DBUS_OBJECT = "/org/freedesktop/DBus";
- private const string DBUS_IFACE = "org.freedesktop.DBus";
-
- private const string TRACKER_SERVICE = "org.gnome.DVB";
-
- dynamic DBus.Object dbus_obj;
- PluginLoader loader;
-
- public DVBPluginFactory (PluginLoader loader) throws DBus.Error {
- var connection = DBus.Bus.get (DBus.BusType.SESSION);
-
- this.dbus_obj = connection.get_object (DBUS_SERVICE,
- DBUS_OBJECT,
- DBUS_IFACE);
- this.loader = loader;
-
- dbus_obj.StartServiceByName (TRACKER_SERVICE,
- (uint32) 0,
- this.start_service_cb);
- }
-
- private void start_service_cb (uint32 status, GLib.Error err) {
- if (err != null) {
- warning ("Failed to start DVB service: %s\n",
- err.message);
- warning ("DVB plugin disabled.\n");
-
- return;
- }
-
- this.loader.add_plugin (new DVBPlugin ());
- }
-}
-
+++ /dev/null
-/*
- * Copyright (C) 2008 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>.
- * Copyright (C) 2008 Nokia Corporation.
- *
- * Author: Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
- * <zeeshan.ali@nokia.com>
- *
- * This file is part of Rygel.
- *
- * Rygel 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; either version 2 of the License, or
- * (at your option) any later version.
- *
- * Rygel 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 program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-/* Implementation of DVB related services, based on DVBDaemon. */
-
-using Rygel;
-using Gee;
-using CStuff;
-
-public class DVBPlugin : Plugin {
- public DVBPlugin () {
- base.MediaServer ("DVB", "Digital TV");
-
- // We only implement a ContentDirectory service
- var resource_info = new ResourceInfo (ContentDirectory.UPNP_ID,
- ContentDirectory.UPNP_TYPE,
- ContentDirectory.DESCRIPTION_PATH,
- typeof (DVBContentDir));
-
- this.add_resource (resource_info);
- }
-}
-
+++ /dev/null
-/*
- * Copyright (C) 2008 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>.
- * Copyright (C) 2008 Nokia Corporation.
- *
- * Author: Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
- * <zeeshan.ali@nokia.com>
- *
- * This file is part of Rygel.
- *
- * Rygel 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; either version 2 of the License, or
- * (at your option) any later version.
- *
- * Rygel 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 program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-using Rygel;
-using GUPnP;
-using DBus;
-using Gee;
-
-/**
- * Represents the root container for DVB media content hierarchy.
- */
-public class Rygel.DVBRootContainer : MediaContainer {
- // class-wide constants
- private const string DVB_SERVICE = "org.gnome.DVB";
- private const string MANAGER_PATH = "/org/gnome/DVB/Manager";
- private const string MANAGER_IFACE = "org.gnome.DVB.Manager";
- private const string CHANNEL_LIST_IFACE = "org.gnome.DVB.ChannelList";
-
- public dynamic DBus.Object manager;
-
- private ArrayList<DVBChannelGroup> groups;
-
- public DVBRootContainer (string title) {
- base.root (title, 0);
-
- this.groups = new ArrayList<DVBChannelGroup> ();
-
- try {
- DBus.Connection connection = DBus.Bus.get (DBus.BusType.SESSION);
-
- // Get a proxy to DVB Manager object
- this.manager = connection.get_object (
- DVBRootContainer.DVB_SERVICE,
- DVBRootContainer.MANAGER_PATH,
- DVBRootContainer.MANAGER_IFACE);
-
- this.fetch_device_groups (connection);
- } catch (DBus.Error error) {
- critical ("Failed to fetch device groups: %s\n", error.message);
- }
- }
-
- public override void get_children (uint offset,
- uint max_count,
- Cancellable? cancellable,
- AsyncReadyCallback callback) {
- uint stop = offset + max_count;
-
- stop = stop.clamp (0, this.child_count);
- var groups = this.groups.slice ((int) offset, (int) stop);
-
- var res = new Rygel.SimpleAsyncResult<Gee.List<MediaObject>>
- (this, callback);
- res.data = groups;
- res.complete_in_idle ();
- }
-
- public override Gee.List<MediaObject>? get_children_finish (
- AsyncResult res)
- throws GLib.Error {
- var simple_res = (Rygel.SimpleAsyncResult<Gee.List<MediaObject>>) res;
- return simple_res.data;
- }
-
- public override void find_object (string id,
- Cancellable? cancellable,
- AsyncReadyCallback callback) {
- // First try groups
- MediaObject media_object = find_group_by_id (id);
-
- if (media_object == null) {
- media_object = find_channel_by_id (id);
- }
-
- var res = new Rygel.SimpleAsyncResult<MediaObject> (this, callback);
-
- res.data = media_object;
- res.complete_in_idle ();
- }
-
- public override MediaObject? find_object_finish (AsyncResult res)
- throws GLib.Error {
- var simple_res = (Rygel.SimpleAsyncResult<MediaObject>) res;
- return simple_res.data;
- }
-
- // Private methods
- private void fetch_device_groups (DBus.Connection connection)
- throws GLib.Error {
- uint[] dev_groups = null;
-
- dev_groups = this.manager.GetRegisteredDeviceGroups ();
-
- foreach (uint group_id in dev_groups) {
- string channel_list_path = null;
- string group_name = null;
-
- channel_list_path = manager.GetChannelList (group_id);
-
- // Get the name of the group
- group_name = manager.GetDeviceGroupName (group_id);
-
- // Get a proxy to DVB ChannelList object
- dynamic DBus.Object channel_list = connection.get_object
- (DVBRootContainer.DVB_SERVICE,
- channel_list_path,
- DVBRootContainer.CHANNEL_LIST_IFACE);
-
- // Create ChannelGroup for each registered device group
- this.groups.add (new DVBChannelGroup (group_id,
- group_name,
- this,
- channel_list));
- }
-
- this.child_count = this.groups.size;
- }
-
- private DVBChannelGroup? find_group_by_id (string id) {
- DVBChannelGroup group = null;
-
- foreach (DVBChannelGroup tmp in this.groups) {
- if (id == tmp.id) {
- group = tmp;
-
- break;
- }
- }
-
- return group;
- }
-
- private MediaObject find_channel_by_id (string id) throws GLib.Error {
- MediaObject channel = null;
-
- foreach (DVBChannelGroup group in this.groups) {
- channel = group.find_object_sync (id);
- if (channel != null) {
- break;
- }
- }
-
- return channel;
- }
-}
-
this.sections.add (new GeneralPrefSection (this.builder, config));
this.sections.add (new TrackerPrefSection (this.builder,
config));
- this.sections.add (new PluginPrefSection (this.builder,
- config,
- "DVB"));
this.sections.add (new MediaExportPrefSection (this.builder,
config));
}