Explorar o código

MacOSX/Framework/VLCMedia.m: Use mediaWithURL:(NSURL*) instead of mediaWithURL:(NSString*). Add a mediaWithPath:(NSString*) constructor.

Pierre d'Herbemont %!s(int64=17) %!d(string=hai) anos
pai
achega
cd10b7d4dd
Modificáronse 2 ficheiros con 13 adicións e 12 borrados
  1. 4 3
      Headers/Public/VLCMedia.h
  2. 9 9
      Sources/VLCMedia.m

+ 4 - 3
Headers/Public/VLCMedia.h

@@ -120,17 +120,18 @@ extern NSString *VLCMediaMetaChanged;        //< Notification message for when t
  * will be automatically released.
  * \see initWithMediaURL
  */
-+ (id)mediaWithURL:(NSString *)anURL;
++ (id)mediaWithURL:(NSURL *)anURL;
++ (id)mediaWithPath:(NSString *)aPath;
 
 /* Initializers */
 /**
  * Initializes a new VLCMedia object to use the specified URL.  Will return nil if
  * the specified URL references a directory that does not comply with DVD file
  * structure.
- * \param anURL URL to media to be accessed.
+ * \param aPath URL to media to be accessed.
  * \return A new VLCMedia object, only if there were no errors.
  */
-- (id)initWithURL:(NSString *)anURL;
+- (id)initWithPath:(NSString *)aPath;
 
 /**
  * Returns an NSComparisonResult value that indicates the lexical ordering of 

+ 9 - 9
Sources/VLCMedia.m

@@ -113,17 +113,17 @@ static void HandleMediaDurationChanged(const libvlc_event_t *event, void *self)
 @end
 
 @implementation VLCMedia
-+ (id)mediaWithURL:(NSString *)aURL;
++ (id)mediaWithPath:(NSString *)aPath;
 {
-    // For some unknown reason, compiler kept shooting me a warning saying:
-    //  warning: passing argument 1 of 'initWithURL:' from distinct Objective-C type
-    // Research on the net shows that the error means that the argument passed
-    // is not compatible with the expected argument.  Doesn't make sense, however
-    // the warning goes away when it is casted it with "id".
-    return [[[VLCMedia alloc] initWithURL:(id)aURL] autorelease];
+    return [[[VLCMedia alloc] initWithPath:(id)aPath] autorelease];
 }
 
-- (id)initWithURL:(NSString *)aURL
++ (id)mediaWithURL:(NSURL *)aURL;
+{
+    return [[[VLCMedia alloc] initWithPath:(id)[aURL path] autorelease];
+}
+
+- (id)initWithPath:(NSString *)aPath
 {        
     if (self = [super init])
     {
@@ -138,7 +138,7 @@ static void HandleMediaDurationChanged(const libvlc_event_t *event, void *self)
         
         url = [aURL copy];
         delegate = nil;
-        metaDictionary = nil;
+        metaDictionary = [[NSMutableDictionary alloc] initWithCapacity:3];
         
         // This value is set whenever the demuxer figures out what the length is.
         // TODO: Easy way to tell the length of the movie without having to instiate the demuxer.  Maybe cached info?