[vlc-devel] commit: osx/framework: added methods to access end-user-compliant names of subtitles, audio tracks, etc. ( Felix Paul Kühne )
git version control
git at videolan.org
Mon Dec 21 01:23:47 CET 2009
vlc | branch: master | Felix Paul Kühne <fkuehne at videolan.org> | Mon Dec 21 00:17:19 2009 +0100| [55f19bbcf48c27ef29687d52bb113ccd0babb001] | committer: Felix Paul Kühne
osx/framework: added methods to access end-user-compliant names of subtitles, audio tracks, etc.
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=55f19bbcf48c27ef29687d52bb113ccd0babb001
---
.../framework/Headers/Public/VLCMediaPlayer.h | 6 ++-
projects/macosx/framework/Sources/VLCMediaPlayer.m | 73 +++++++++++++++++---
2 files changed, 68 insertions(+), 11 deletions(-)
diff --git a/projects/macosx/framework/Headers/Public/VLCMediaPlayer.h b/projects/macosx/framework/Headers/Public/VLCMediaPlayer.h
index 043ca1b..7503672 100644
--- a/projects/macosx/framework/Headers/Public/VLCMediaPlayer.h
+++ b/projects/macosx/framework/Headers/Public/VLCMediaPlayer.h
@@ -107,8 +107,9 @@ extern NSString * VLCMediaPlayerStateToString(VLCMediaPlayerState state);
- (char *)videoAspectRatio;
- (void)setVideoSubTitles:(int)value;
- (int)countOfVideoSubTitles;
-- (int)currentVideoSubTitles;
- (BOOL)openVideoSubTitlesFromFile:(NSString *)path;
+- (int)currentVideoSubTitles;
+- (NSArray *)videoSubTitles;
- (void)setVideoCropGeometry:(char *)value;
- (char *)videoCropGeometry;
@@ -163,15 +164,18 @@ extern NSString * VLCMediaPlayerStateToString(VLCMediaPlayerState state);
- (void)setChapter:(int)value;
- (int)currentChapter;
- (int)countOfChapters;
+- (NSArray *)chaptersForTitle:(int)title;
- (void)setCurrentTitle:(int)value;
- (int)currentTitle;
- (int)countOfTitles;
+- (NSArray *)titles;
/* Audio Options */
- (void)setAudioTrack:(int)value;
- (int)currentAudioTrack;
- (int)countOfAudioTracks;
+- (NSArray *)audioTracks;
- (void)setAudioChannel:(int)value;
- (int)audioChannel;
diff --git a/projects/macosx/framework/Sources/VLCMediaPlayer.m b/projects/macosx/framework/Sources/VLCMediaPlayer.m
index 2609810..fe9788a 100644
--- a/projects/macosx/framework/Sources/VLCMediaPlayer.m
+++ b/projects/macosx/framework/Sources/VLCMediaPlayer.m
@@ -297,16 +297,8 @@ static void HandleMediaInstanceStateChanged(const libvlc_event_t * event, void *
libvlc_exception_t ex;
libvlc_exception_init( &ex );
int result = libvlc_video_get_spu( instance, &ex );
- if (libvlc_exception_raised(&ex))
- {
- libvlc_exception_clear(&ex);
- return -1;
- }
- else
- {
- libvlc_exception_clear(&ex);
- return result;
- }
+ catch_exception( &ex );
+ return result;
}
- (BOOL)openVideoSubTitlesFromFile:(NSString *)path
@@ -318,6 +310,21 @@ static void HandleMediaInstanceStateChanged(const libvlc_event_t * event, void *
return result;
}
+- (NSArray *)videoSubTitles
+{
+ libvlc_exception_t ex;
+ libvlc_exception_init( &ex );
+ libvlc_track_description_t *tracks = libvlc_video_get_spu_description( instance, &ex );
+ NSMutableArray *tempArray = [NSMutableArray array];
+ NSInteger i;
+ for (i = 0; i < [self countOfVideoSubTitles] ; i++)
+ {
+ [tempArray addObject:[NSString stringWithUTF8String: tracks->psz_name]];
+ tracks = tracks->p_next;
+ }
+ return [NSArray arrayWithArray: tempArray];
+}
+
- (void)setVideoCropGeometry:(char *)value
{
libvlc_exception_t ex;
@@ -493,6 +500,21 @@ static void HandleMediaInstanceStateChanged(const libvlc_event_t * event, void *
catch_exception( &ex );
}
+- (NSArray *)chaptersForTitle:(int)title
+{
+ libvlc_exception_t ex;
+ libvlc_exception_init( &ex );
+ libvlc_track_description_t *tracks = libvlc_video_get_chapter_description( instance, title, &ex );
+ NSMutableArray *tempArray = [NSMutableArray array];
+ NSInteger i;
+ for (i = 0; i < [self countOfChapters] ; i++)
+ {
+ [tempArray addObject:[NSString stringWithUTF8String: tracks->psz_name]];
+ tracks = tracks->p_next;
+ }
+ return [NSArray arrayWithArray: tempArray];
+}
+
- (void)setCurrentTitle:(int)value
{
libvlc_exception_t ex;
@@ -519,6 +541,21 @@ static void HandleMediaInstanceStateChanged(const libvlc_event_t * event, void *
return result;
}
+- (NSArray *)titles
+{
+ libvlc_exception_t ex;
+ libvlc_exception_init( &ex );
+ libvlc_track_description_t *tracks = libvlc_video_get_title_description( instance, &ex );
+ NSMutableArray *tempArray = [NSMutableArray array];
+ NSInteger i;
+ for (i = 0; i < [self countOfTitles] ; i++)
+ {
+ [tempArray addObject:[NSString stringWithUTF8String: tracks->psz_name]];
+ tracks = tracks->p_next;
+ }
+ return [NSArray arrayWithArray: tempArray];
+}
+
- (void)setAudioTrack:(int)value
{
libvlc_exception_t ex;
@@ -545,6 +582,22 @@ static void HandleMediaInstanceStateChanged(const libvlc_event_t * event, void *
return result;
}
+- (NSArray *)audioTracks
+{
+ libvlc_exception_t ex;
+ libvlc_exception_init( &ex );
+ libvlc_track_description_t *tracks = libvlc_audio_get_track_description( instance, &ex );
+ NSMutableArray *tempArray = [NSMutableArray array];
+ NSInteger i;
+ for (i = 0; i < [self countOfAudioTracks] ; i++)
+ {
+ [tempArray addObject:[NSString stringWithUTF8String: tracks->psz_name]];
+ tracks = tracks->p_next;
+ }
+
+ return [NSArray arrayWithArray: tempArray];
+}
+
- (void)setAudioChannel:(int)value
{
libvlc_exception_t ex;
More information about the vlc-devel
mailing list