Develop and Download Open Source Software

Browse Subversion Repository

Annotation of /XspfQT/XspfQTMovieLoader.m

Parent Directory Parent Directory | Revision Log Revision Log


Revision 180 - (hide annotations) (download)
Sun Mar 15 00:59:42 2009 UTC (15 years, 1 month ago) by masaki
File size: 2096 byte(s)
QTMovieをロードするクラスを作成。
1 masaki 180 //
2     // XspfQTMovieLoader.m
3     // XspfQT
4     //
5     // Created by Hori,Masaki on 09/03/14.
6     // Copyright 2009 masakih. All rights reserved.
7     //
8    
9     #import "XspfQTMovieLoader.h"
10    
11     #import "NSURL-XspfQT-Extensions.h"
12    
13     @implementation XspfQTMovieLoader
14     + (id)loaderWithMovieURL:(NSURL *)inMovieURL delegate:(id)inDelegate
15     {
16     return [[[[self class] alloc] initWithMovieURL:inMovieURL delegate:inDelegate] autorelease];
17     }
18     - (id)initWithMovieURL:(NSURL *)inMovieURL delegate:(id)inDelegate
19     {
20     self = [super init];
21     if(self) {
22    
23     @try {
24     [self setDelegate:inDelegate];
25     }
26     @catch (XspfQTMovieLoader *me) {
27     [self autorelease];
28     return nil;
29     }
30     [self setMovieURL:inMovieURL];
31     }
32    
33     return self;
34     }
35    
36     - (void)dealloc
37     {
38     [movieURL release];
39     [movie release];
40    
41     [super dealloc];
42     }
43    
44     - (void)setMovieURL:(NSURL *)url
45     {
46     if([url isEqualUsingLocalhost:movieURL]) return;
47    
48     [self setQTMovie:nil];
49     [movieURL autorelease];
50     movieURL = [url retain];
51     }
52     - (NSURL *)movieURL
53     {
54     return movieURL;
55     }
56     - (void)setQTMovie:(QTMovie *)newMovie
57     {
58     [movie release];
59     movie = [newMovie retain];
60     }
61     - (QTMovie *)qtMovie
62     {
63     return movie;
64     }
65    
66     - (void)setDelegate:(id)inDelegate
67     {
68     if(inDelegate && ![inDelegate respondsToSelector:@selector(setQTMovie:)]) {
69     NSLog(@"Delegate should be respond to selector setQTMovie:");
70     [self autorelease];
71     @throw self;
72     }
73    
74     delegate = inDelegate;
75     }
76     - (id)delegate
77     {
78     return delegate;
79     }
80    
81     - (void)load
82     {
83     QTMovie *newMovie = nil;
84    
85     if(movie) return;
86    
87     if(![QTMovie canInitWithURL:movieURL]) goto finish;
88    
89     NSError *error = nil;
90     // NSDictionary *attrs = [NSDictionary dictionaryWithObjectsAndKeys:
91     // [self location], QTMovieURLAttribute,
92     // [NSNumber numberWithBool:NO], QTMovieOpenAsyncOKAttribute,
93     // nil];
94     // movie = [[QTMovie alloc] initWithAttributes:attrs error:&error];
95     newMovie = [[QTMovie alloc] initWithURL:movieURL error:&error];
96     if(error) {
97     NSLog(@"%@", error);
98     }
99    
100     finish:
101     [self setQTMovie:[newMovie autorelease]];
102     [delegate setQTMovie:movie];
103     }
104     - (void)loadInBG
105     {
106     [self performSelector:@selector(load) withObject:nil afterDelay:0.0];
107     }
108    
109     @end

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26