2 // VLCMediaListPlayer.m
5 // Created by Pierre d'Herbemont on 8/24/09.
6 // Copyright 2009 __MyCompanyName__. All rights reserved.
9 #import "VLCMediaListPlayer.h"
11 #import "VLCMediaPlayer.h"
12 #import "VLCMediaList.h"
13 #import "VLCLibVLCBridging.h"
15 @implementation VLCMediaListPlayer
18 if (self = [super init])
20 _mediaPlayer = [[VLCMediaPlayer alloc] init];
22 libvlc_exception_t ex;
23 libvlc_exception_init(&ex);
24 instance = libvlc_media_list_player_new([VLCLibrary sharedInstance], &ex);
26 libvlc_media_list_player_set_media_player(instance, [_mediaPlayer libVLCMediaPlayer], &ex);
34 libvlc_media_list_player_release(instance);
35 [_mediaPlayer release];
40 - (VLCMediaPlayer *)mediaPlayer
45 - (void)setMediaList:(VLCMediaList *)mediaList
47 if (_mediaList == mediaList)
50 _mediaList = [mediaList retain];
52 libvlc_exception_t ex;
53 libvlc_exception_init(&ex);
54 libvlc_media_list_player_set_media_list(instance, [mediaList libVLCMediaList], &ex);
56 [self willChangeValueForKey:@"rootMedia"];
59 [self didChangeValueForKey:@"rootMedia"];
62 - (VLCMediaList *)mediaList
67 - (void)setRootMedia:(VLCMedia *)media
69 if (_rootMedia == media)
74 VLCMediaList *mediaList = [[VLCMediaList alloc] init];
76 [mediaList addMedia:media];
78 // This will clean rootMedia
79 [self setMediaList:mediaList];
81 // Thus set rootMedia here.
82 _rootMedia = [media retain];
87 - (VLCMedia *)rootMedia
92 - (void)playMedia:(VLCMedia *)media
94 libvlc_exception_t ex;
95 libvlc_exception_init(&ex);
96 libvlc_media_list_player_play_item(instance, [media libVLCMediaDescriptor], &ex);
102 libvlc_exception_t ex;
103 libvlc_exception_init(&ex);
104 libvlc_media_list_player_play(instance, &ex);
105 catch_exception(&ex);
110 libvlc_exception_t ex;
111 libvlc_exception_init(&ex);
112 libvlc_media_list_player_stop(instance, &ex);
113 catch_exception(&ex);