Selaa lähdekoodia

discoverer: update to libvlc 3.0 syntax and clean-up the coding style

Felix Paul Kühne 10 vuotta sitten
vanhempi
commit
72079feda6
2 muutettua tiedostoa jossa 36 lisäystä ja 28 poistoa
  1. 2 2
      Headers/Public/VLCMediaDiscoverer.h
  2. 34 26
      Sources/VLCMediaDiscoverer.m

+ 2 - 2
Headers/Public/VLCMediaDiscoverer.h

@@ -50,12 +50,12 @@
 /**
  * TODO: Documentation VLCMediaDiscoverer.discoveredMedia
  */
-@property (weak, readonly) VLCMediaList * discoveredMedia;
+@property (weak, readonly) VLCMediaList *discoveredMedia;
 
 /**
  * TODO: Documentation VLCMediaDiscoverer.localizedName
  */
-@property (readonly, copy) NSString * localizedName;
+@property (readonly, copy) NSString *localizedName;
 
 /**
  * TODO: Documentation VLCMediaDiscoverer.isRunning

+ 34 - 26
Sources/VLCMediaDiscoverer.m

@@ -2,10 +2,12 @@
  * VLCMediaDiscoverer.m: VLCKit.framework VLCMediaDiscoverer implementation
  *****************************************************************************
  * Copyright (C) 2007 Pierre d'Herbemont
- * Copyright (C) 2007, 2014 VLC authors and VideoLAN
+ * Copyright (C) 2014-2015 Felix Paul Kühne
+ * Copyright (C) 2007, 2015 VLC authors and VideoLAN
  * $Id$
  *
  * Authors: Pierre d'Herbemont <pdherbemont # videolan.org>
+ *          Felix Paul Kühne <fkuehne # videolan dot org>
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU Lesser General Public License as published by
@@ -31,22 +33,14 @@
 
 @interface VLCMediaDiscoverer ()
 {
-    NSString * _localizedName;
-    VLCMediaList * _discoveredMedia;
-    void * _mdis;
+    NSString *_localizedName;
+    VLCMediaList *_discoveredMedia;
+    void *_mdis;
     BOOL _running;
-}
-@end
 
-static NSArray * availableMediaDiscoverer = nil;     // Global list of media discoverers
-
-/**
- * Declares call back functions to be used with libvlc event callbacks.
- */
-@interface VLCMediaDiscoverer()
-{
     VLCLibrary *_privateLibrary;
 }
+
 /**
  * libvlc told us that the discoverer is actually running
  */
@@ -56,10 +50,13 @@ static NSArray * availableMediaDiscoverer = nil;     // Global list of media dis
  * libvlc told us that the discoverer stopped running
  */
 - (void)_mediaDiscovererEnded;
+
 @end
 
+static NSArray *availableMediaDiscoverer = nil;     // Global list of media discoverers
+
 /* libvlc event callback */
-static void HandleMediaDiscovererStarted(const libvlc_event_t * event, void * user_data)
+static void HandleMediaDiscovererStarted(const libvlc_event_t *event, void *user_data)
 {
     @autoreleasepool {
         NSLog(@"HandleMediaDiscovererStarted");
@@ -70,7 +67,7 @@ static void HandleMediaDiscovererStarted(const libvlc_event_t * event, void * us
     }
 }
 
-static void HandleMediaDiscovererEnded( const libvlc_event_t * event, void * user_data)
+static void HandleMediaDiscovererEnded( const libvlc_event_t *event, void *user_data)
 {
     @autoreleasepool {
         NSLog(@"HandleMediaDiscovererEnded");
@@ -101,15 +98,27 @@ static void HandleMediaDiscovererEnded( const libvlc_event_t * event, void * use
         _discoveredMedia = nil;
 
         _privateLibrary = [VLCLibrary sharedLibrary];
-        libvlc_retain([_privateLibrary instance]);
+        libvlc_retain(_privateLibrary.instance);
+
+        _mdis = libvlc_media_discoverer_new(_privateLibrary.instance,
+                                            [aServiceName UTF8String]);
+
+        if (_mdis == NULL) {
+            VKLog(@"media discovery initialization failed, maybe no such module?");
+            return NULL;
+        }
 
-        _mdis = libvlc_media_discoverer_new_from_name([_privateLibrary instance],
-                                                     [aServiceName UTF8String]);
-        NSAssert(_mdis, @"No such media discoverer");
         libvlc_event_manager_t * p_em = libvlc_media_discoverer_event_manager(_mdis);
         libvlc_event_attach(p_em, libvlc_MediaDiscovererStarted, HandleMediaDiscovererStarted, (__bridge void *)(self));
         libvlc_event_attach(p_em, libvlc_MediaDiscovererEnded,   HandleMediaDiscovererEnded,   (__bridge void *)(self));
 
+        //FIXME: add more events
+        int returnValue = libvlc_media_discoverer_start(_mdis);
+        if (returnValue == -1) {
+            VKLog(@"media discovery start failed");
+            return NULL;
+        }
+
         _running = libvlc_media_discoverer_is_running(_mdis);
     }
     return self;
@@ -122,19 +131,18 @@ static void HandleMediaDiscovererEnded( const libvlc_event_t * event, void * use
     libvlc_event_detach(em, libvlc_MediaDiscovererEnded,   HandleMediaDiscovererEnded,   (__bridge void *)(self));
     [[VLCEventManager sharedManager] cancelCallToObject:self];
 
-    libvlc_media_discoverer_release( _mdis );
+    libvlc_media_discoverer_release(_mdis);
 
     libvlc_release(_privateLibrary.instance);
-
 }
 
-- (VLCMediaList *) discoveredMedia
+- (VLCMediaList *)discoveredMedia
 {
     if (_discoveredMedia)
         return _discoveredMedia;
 
-    libvlc_media_list_t * p_mlist = libvlc_media_discoverer_media_list( _mdis );
-    VLCMediaList * ret = [VLCMediaList mediaListWithLibVLCMediaList:p_mlist];
+    libvlc_media_list_t *p_mlist = libvlc_media_discoverer_media_list( _mdis );
+    VLCMediaList *ret = [VLCMediaList mediaListWithLibVLCMediaList:p_mlist];
     libvlc_media_list_release( p_mlist );
 
     _discoveredMedia = ret;
@@ -146,10 +154,10 @@ static void HandleMediaDiscovererEnded( const libvlc_event_t * event, void * use
     if (_localizedName)
         return _localizedName;
 
-    char * name = libvlc_media_discoverer_localized_name( _mdis );
+    char *name = libvlc_media_discoverer_localized_name(_mdis);
     if (name) {
         _localizedName = @(name);
-        free( name );
+        free(name);
     }
     return _localizedName;
 }