Преглед изворни кода

media discoverer: allow use of a custom VLCLibrary instance

Felix Paul Kühne пре 9 година
родитељ
комит
517177b036
2 измењених фајлова са 16 додато и 1 уклоњено
  1. 6 0
      Headers/Public/VLCMediaDiscoverer.h
  2. 10 1
      Sources/VLCMediaDiscoverer.m

+ 6 - 0
Headers/Public/VLCMediaDiscoverer.h

@@ -54,6 +54,12 @@
 - (instancetype)initWithName:(NSString *)aServiceName;
 - (instancetype)initWithName:(NSString *)aServiceName;
 
 
 /**
 /**
+ * same as above but with a custom VLCLibrary instance
+ * \note Using this mode can lead to a significant performance impact - use only if you know what you are doing
+ */
+- (instancetype)initWithName:(NSString *)aServiceName libraryInstance:(VLCLibrary *)libraryInstance;
+
+/**
  * start media discovery
  * start media discovery
  * \returns -1 if start failed, otherwise 0
  * \returns -1 if start failed, otherwise 0
  */
  */

+ 10 - 1
Sources/VLCMediaDiscoverer.m

@@ -52,11 +52,20 @@
 
 
 - (instancetype)initWithName:(NSString *)aServiceName
 - (instancetype)initWithName:(NSString *)aServiceName
 {
 {
+    return [self initWithName:aServiceName libraryInstance:nil];
+}
+
+- (instancetype)initWithName:(NSString *)aServiceName libraryInstance:(VLCLibrary *)libraryInstance
+{
     if (self = [super init]) {
     if (self = [super init]) {
         _localizedName = nil;
         _localizedName = nil;
         _discoveredMedia = nil;
         _discoveredMedia = nil;
 
 
-        _privateLibrary = [VLCLibrary sharedLibrary];
+        if (libraryInstance != nil) {
+            _privateLibrary = libraryInstance;
+        } else {
+            _privateLibrary = [VLCLibrary sharedLibrary];
+        }
         libvlc_retain([_privateLibrary instance]);
         libvlc_retain([_privateLibrary instance]);
 
 
         _mdis = libvlc_media_discoverer_new([_privateLibrary instance],
         _mdis = libvlc_media_discoverer_new([_privateLibrary instance],