if (self = [super init])
{
// Create a new libvlc media list instance
- libvlc_exception_t p_e;
- libvlc_exception_init( &p_e );
- p_mlist = libvlc_media_list_new( [VLCLibrary sharedInstance], &p_e );
- catch_exception( &p_e );
+ p_mlist = libvlc_media_list_new([VLCLibrary sharedInstance]);
// Initialize internals to defaults
cachedMedia = [[NSMutableArray alloc] init];
- delegate = flatAspect = hierarchicalAspect = hierarchicalNodeAspect = nil;
[self initInternalMediaList];
}
return self;
libvlc_media_list_release( p_mlist );
[cachedMedia release];
- [flatAspect release];
- [hierarchicalAspect release];
- [hierarchicalNodeAspect release];
[super dealloc];
}
- (BOOL)isReadOnly
{
- libvlc_exception_t p_e;
- libvlc_exception_init( &p_e );
- BOOL isReadOnly = libvlc_media_list_is_readonly( p_mlist );
- catch_exception( &p_e );
-
- return isReadOnly;
-}
-
-/* Media list aspect */
-- (VLCMediaListAspect *)hierarchicalAspect
-{
- if( hierarchicalAspect )
- return hierarchicalAspect;
-
- libvlc_media_list_view_t * p_mlv = libvlc_media_list_hierarchical_view( p_mlist, NULL );
- hierarchicalAspect = [[VLCMediaListAspect mediaListAspectWithLibVLCMediaListView:p_mlv andMediaList:self] retain];
- libvlc_media_list_view_release( p_mlv );
- return hierarchicalAspect;
-}
-
-- (VLCMediaListAspect *)hierarchicalNodeAspect
-{
- if( hierarchicalNodeAspect )
- return hierarchicalNodeAspect;
-
- libvlc_media_list_view_t * p_mlv = libvlc_media_list_hierarchical_node_view( p_mlist, NULL );
- hierarchicalNodeAspect = [[VLCMediaListAspect mediaListAspectWithLibVLCMediaListView:p_mlv andMediaList:self] retain];
- libvlc_media_list_view_release( p_mlv );
- return hierarchicalNodeAspect;
-}
-
-- (VLCMediaListAspect *)flatAspect
-{
- if( flatAspect )
- return flatAspect;
-
- libvlc_media_list_view_t * p_mlv = libvlc_media_list_flat_view( p_mlist, NULL );
- flatAspect = [[VLCMediaListAspect mediaListAspectWithLibVLCMediaListView:p_mlv andMediaList:self] retain];
- libvlc_media_list_view_release( p_mlv );
- return flatAspect;
+ return libvlc_media_list_is_readonly( p_mlist );
}
@end