From: Zeeshan Ali (Khattak) Date: Wed, 28 Jan 2009 12:33:37 +0000 (+0000) Subject: DVBChannelGroup keeps an ArrayList of channels. X-Git-Tag: RYGEL_0_2_2~143 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=fb55cb083ca62d2e31d6d06b4cdc62cc28420df7;p=profile%2Fivi%2Frygel.git DVBChannelGroup keeps an ArrayList of channels. svn path=/trunk/; revision=500 --- diff --git a/src/plugins/dvb/rygel-dvb-channel-group.vala b/src/plugins/dvb/rygel-dvb-channel-group.vala index 950a868..031a37b 100644 --- a/src/plugins/dvb/rygel-dvb-channel-group.vala +++ b/src/plugins/dvb/rygel-dvb-channel-group.vala @@ -38,8 +38,8 @@ public class Rygel.DVBChannelGroup : MediaContainer { public static dynamic DBus.Object channel_list; - /* Hashmap of (UPnP) IDs to channels */ - private HashMap channels; + /* List of channels */ + private ArrayList channels; public HTTPServer http_server; @@ -68,21 +68,23 @@ public class Rygel.DVBChannelGroup : MediaContainer { throws GLib.Error { child_count = this.channels.size; - var channels = new ArrayList (); - - foreach (var channel in this.channels.get_values ()) { - channels.add (channel); - } - - return channels; + return this.channels; } public DVBChannel find_channel (string id) { - return this.channels.get (id); + DVBChannel channel = null; + foreach (var tmp in this.channels) { + if (tmp.id == id) { + channel = tmp; + break; + } + } + + return channel; } private void fetch_channels () { - this.channels = new HashMap (str_hash, str_equal); + this.channels = new ArrayList ((EqualFunc) channel_equal); DBus.Connection connection; try { @@ -109,7 +111,7 @@ public class Rygel.DVBChannelGroup : MediaContainer { this.id, channel_list, http_server); - this.channels.set (channel.id, channel); + this.channels.add (channel); } catch (GLib.Error error) { critical ("Failed to create DVB Channel object: %s", error.message); @@ -118,5 +120,9 @@ public class Rygel.DVBChannelGroup : MediaContainer { this.child_count = this.channels.size; } + + private static bool channel_equal (DVBChannel a, DVBChannel b) { + return a.id == b.id; + } }