[rygel] core: Equality function for list of ProtocolInfo



commit 134d60c511bd1f81dcc4034ae7992b7d8da55db6
Author: Zeeshan Ali (Khattak) <zeeshanak gnome org>
Date:   Mon Aug 16 23:29:13 2010 +0300

    core: Equality function for list of ProtocolInfo
    
    This is to allow for easy search of a particular ProtocolInfo in the list.

 src/rygel/rygel-transcode-manager.vala |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletions(-)
---
diff --git a/src/rygel/rygel-transcode-manager.vala b/src/rygel/rygel-transcode-manager.vala
index 917f83d..a8f83b8 100644
--- a/src/rygel/rygel-transcode-manager.vala
+++ b/src/rygel/rygel-transcode-manager.vala
@@ -33,6 +33,14 @@ using Gst;
 internal abstract class Rygel.TranscodeManager : GLib.Object {
     private ArrayList<Transcoder> transcoders;
 
+    private static bool protocol_equal_func (void *a, void *b) {
+        var protocol_a = a as ProtocolInfo;
+        var protocol_b = b as ProtocolInfo;
+
+        return protocol_a.dlna_profile == protocol_b.dlna_profile &&
+               protocol_a.mime_type == protocol_b.mime_type;
+    }
+
     public TranscodeManager () {
         transcoders = new ArrayList<Transcoder> ();
 
@@ -118,7 +126,7 @@ internal abstract class Rygel.TranscodeManager : GLib.Object {
     internal abstract string get_protocol ();
 
     internal virtual ArrayList<ProtocolInfo> get_protocol_info () {
-        var protocol_infos = new ArrayList<ProtocolInfo> ();
+        var protocol_infos = new ArrayList<ProtocolInfo> (protocol_equal_func);
 
         foreach (var transcoder in this.transcoders) {
             var protocol_info = new ProtocolInfo ();



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]