#import <vlc_modules.h>
#import "assert.h"
-#define MENU_MAP(a,e) ((uint32_t)( (((uint16_t)a) << 16) | ((uint16_t)e) ))
-#define MENU_GET_ACTION(a) ( (uint16_t)( ((uint32_t)a) >> 16 ) )
-#define MENU_GET_EXTENSION(a) ( (uint16_t)( ((uint32_t)a) & 0xFFFF ) )
+#define MENU_MAP(a,e) ((uint32_t)((((uint16_t)a) << 16) | ((uint16_t)e)))
+#define MENU_GET_ACTION(a) ((uint16_t)(((uint32_t)a) >> 16))
+#define MENU_GET_EXTENSION(a) ((uint16_t)(((uint32_t)a) & 0xFFFF))
@implementation ExtensionsManager
@synthesize isUnloading = b_unloading;
-+ (ExtensionsManager *)getInstance:( intf_thread_t *)_p_intf
++ (ExtensionsManager *)getInstance:(intf_thread_t *)_p_intf
{
- if( !instance )
+ if (!instance)
instance = [[[ExtensionsManager alloc] initWithIntf:_p_intf] autorelease];
return instance;
}
- (id)initWithIntf:(intf_thread_t *)_p_intf
{
- if ((self = [super init]))
- {
+ if ((self = [super init])) {
p_intf = _p_intf;
p_extensions_manager = NULL;
p_edp = NULL;
return self;
}
-/** Get the extensions_manager_t if it is loaded and hold the object */
-- (extensions_manager_t *)getManager
-{
- if( !p_extensions_manager )
- return NULL;
-
- vlc_object_hold( p_extensions_manager );
- return p_extensions_manager;
-}
-
- (void)buildMenu:(NSMenu *)extMenu
{
- assert( extMenu != nil );
- if( ![self isLoaded] )
- {
+ assert(extMenu != nil);
+ if (![self isLoaded])
// This case can happen: do nothing
return;
- }
- vlc_mutex_lock( &p_extensions_manager->lock );
+ vlc_mutex_lock(&p_extensions_manager->lock);
extension_t *p_ext = NULL;
int i_ext = 0;
- FOREACH_ARRAY( p_ext, p_extensions_manager->extensions )
- {
- bool b_Active = extension_IsActivated( p_extensions_manager, p_ext );
+ FOREACH_ARRAY(p_ext, p_extensions_manager->extensions) {
+ bool b_Active = extension_IsActivated(p_extensions_manager, p_ext);
NSString *titleString = [NSString stringWithCString:p_ext->psz_title
encoding:NSUTF8StringEncoding];
- if( b_Active && extension_HasMenu( p_extensions_manager, p_ext ) )
- {
+ if (b_Active && extension_HasMenu(p_extensions_manager, p_ext)) {
NSMenu *submenu = [[NSMenu alloc] initWithTitle:titleString];
NSMenuItem *submenuItem = [extMenu addItemWithTitle:titleString
action:nil
uint16_t *pi_ids = NULL;
size_t i_num = 0;
- if( extension_GetMenu( p_extensions_manager, p_ext,
- &ppsz_titles, &pi_ids ) == VLC_SUCCESS )
- {
- for( int i = 0; ppsz_titles[i] != NULL; ++i )
- {
+ if (extension_GetMenu(p_extensions_manager, p_ext,
+ &ppsz_titles, &pi_ids) == VLC_SUCCESS) {
+ for (int i = 0; ppsz_titles[i] != NULL; ++i) {
++i_num;
titleString = [NSString stringWithCString:ppsz_titles[i]
encoding:NSUTF8StringEncoding];
[menuItem setTarget:self];
menuItem.tag = MENU_MAP(pi_ids[i], i_ext);
- free( ppsz_titles[i] );
+ free(ppsz_titles[i]);
}
- if( !i_num )
- {
+ if (!i_num) {
NSMenuItem *menuItem = [submenu addItemWithTitle:@"Empty"
action:@selector(triggerMenu:)
keyEquivalent:@""];
[menuItem setEnabled:NO];
}
- free( ppsz_titles );
- free( pi_ids );
- }
- else
- {
- msg_Warn( p_intf, "Could not get menu for extension '%s'",
- p_ext->psz_title );
+ free(ppsz_titles);
+ free(pi_ids);
+ } else {
+ msg_Warn(p_intf, "Could not get menu for extension '%s'",
+ p_ext->psz_title);
NSMenuItem *menuItem = [submenu addItemWithTitle:@"Empty"
action:@selector(triggerMenu:)
keyEquivalent:@""];
keyEquivalent:@""];
[menuItem setTarget:self];
- if( !extension_TriggerOnly( p_extensions_manager, p_ext ) )
- {
- if ( b_Active )
+ if (!extension_TriggerOnly(p_extensions_manager, p_ext)) {
+ if (b_Active)
[menuItem setState:NSOnState];
}
menuItem.tag = MENU_MAP(0, i_ext);
}
FOREACH_END()
- vlc_mutex_unlock( &p_extensions_manager->lock );
+ vlc_mutex_unlock(&p_extensions_manager->lock);
}
- (BOOL)loadExtensions
{
- if( !p_extensions_manager )
- {
- p_extensions_manager = ( extensions_manager_t* )
- vlc_object_create( p_intf, sizeof( extensions_manager_t ) );
- if( !p_extensions_manager )
- {
+ if (!p_extensions_manager) {
+ p_extensions_manager = (extensions_manager_t*)
+ vlc_object_create(p_intf, sizeof(extensions_manager_t));
+ if (!p_extensions_manager) {
b_failed = true;
[delegate extensionsUpdated];
return false;
}
p_extensions_manager->p_module =
- module_need( p_extensions_manager, "extension", NULL, false );
+ module_need(p_extensions_manager, "extension", NULL, false);
- if( !p_extensions_manager->p_module )
- {
- msg_Err( p_intf, "Unable to load extensions module" );
- vlc_object_release( p_extensions_manager );
+ if (!p_extensions_manager->p_module) {
+ msg_Err(p_intf, "Unable to load extensions module");
+ vlc_object_release(p_extensions_manager);
p_extensions_manager = NULL;
b_failed = true;
[delegate extensionsUpdated];
p_edp = [ExtensionsDialogProvider sharedInstance:p_intf];
[p_edp retain];
- if( !p_edp )
- {
- msg_Err( p_intf, "Unable to create dialogs provider for extensions" );
- module_unneed( p_extensions_manager,
- p_extensions_manager->p_module );
- vlc_object_release( p_extensions_manager );
+ if (!p_edp) {
+ msg_Err(p_intf, "Unable to create dialogs provider for extensions");
+ module_unneed(p_extensions_manager,
+ p_extensions_manager->p_module);
+ vlc_object_release(p_extensions_manager);
p_extensions_manager = NULL;
b_failed = true;
[delegate extensionsUpdated];
- (void)unloadExtensions
{
- if( !p_extensions_manager )
+ if (!p_extensions_manager)
return;
b_unloading = true;
[p_edp release];
- module_unneed( p_extensions_manager, p_extensions_manager->p_module );
- vlc_object_release( p_extensions_manager );
+ module_unneed(p_extensions_manager, p_extensions_manager->p_module);
+ vlc_object_release(p_extensions_manager);
p_extensions_manager = NULL;
}
{
uint32_t identifier = [(NSMenuItem *)sender tag];
- uint16_t i_ext = MENU_GET_EXTENSION( identifier );
- uint16_t i_action = MENU_GET_ACTION( identifier );
+ uint16_t i_ext = MENU_GET_EXTENSION(identifier);
+ uint16_t i_action = MENU_GET_ACTION(identifier);
- vlc_mutex_lock( &p_extensions_manager->lock );
+ vlc_mutex_lock(&p_extensions_manager->lock);
- if( (int) i_ext > p_extensions_manager->extensions.i_size )
- {
- msg_Dbg( p_intf, "can't trigger extension with wrong id %d",
- (int) i_ext );
+ if ((int) i_ext > p_extensions_manager->extensions.i_size) {
+ msg_Dbg(p_intf, "can't trigger extension with wrong id %d",
+ (int) i_ext);
return;
}
- extension_t *p_ext = ARRAY_VAL( p_extensions_manager->extensions, i_ext );
- assert( p_ext != NULL);
+ extension_t *p_ext = ARRAY_VAL(p_extensions_manager->extensions, i_ext);
+ assert(p_ext != NULL);
- vlc_mutex_unlock( &p_extensions_manager->lock );
+ vlc_mutex_unlock(&p_extensions_manager->lock);
- if( i_action == 0 )
- {
- msg_Dbg( p_intf, "activating or triggering extension '%s', id %d",
- p_ext->psz_title, i_ext );
+ if (i_action == 0) {
+ msg_Dbg(p_intf, "activating or triggering extension '%s', id %d",
+ p_ext->psz_title, i_ext);
- if( extension_TriggerOnly( p_extensions_manager, p_ext ) )
- {
- extension_Trigger( p_extensions_manager, p_ext );
- }
- else
- {
- if( !extension_IsActivated( p_extensions_manager, p_ext ) )
- extension_Activate( p_extensions_manager, p_ext );
+ if (extension_TriggerOnly(p_extensions_manager, p_ext)) {
+ extension_Trigger(p_extensions_manager, p_ext);
+ } else {
+ if (!extension_IsActivated(p_extensions_manager, p_ext))
+ extension_Activate(p_extensions_manager, p_ext);
else
- extension_Deactivate( p_extensions_manager, p_ext );
+ extension_Deactivate(p_extensions_manager, p_ext);
}
}
else
{
- msg_Dbg( p_intf, "triggering extension '%s', on menu with id = 0x%x",
- p_ext->psz_title, i_action );
+ msg_Dbg(p_intf, "triggering extension '%s', on menu with id = 0x%x",
+ p_ext->psz_title, i_action);
- extension_TriggerMenu( p_extensions_manager, p_ext, i_action );
+ extension_TriggerMenu(p_extensions_manager, p_ext, i_action);
}
}
- (void)inputChanged:(input_thread_t *)p_input
{
//This is unlikely, but can happen if no extension modules can be loaded.
- if ( p_extensions_manager == NULL )
- return ;
- vlc_mutex_lock( &p_extensions_manager->lock );
+ if (p_extensions_manager == NULL)
+ return;
+ vlc_mutex_lock(&p_extensions_manager->lock);
extension_t *p_ext;
- FOREACH_ARRAY( p_ext, p_extensions_manager->extensions )
- {
- if( extension_IsActivated( p_extensions_manager, p_ext ) )
- {
- extension_SetInput( p_extensions_manager, p_ext, p_input );
- }
+ FOREACH_ARRAY(p_ext, p_extensions_manager->extensions) {
+ if (extension_IsActivated(p_extensions_manager, p_ext))
+ extension_SetInput(p_extensions_manager, p_ext, p_input);
}
FOREACH_END()
- vlc_mutex_unlock( &p_extensions_manager->lock );
+ vlc_mutex_unlock(&p_extensions_manager->lock);
}
- (void)playingChanged:(int)state
{
//This is unlikely, but can happen if no extension modules can be loaded.
- if ( p_extensions_manager == NULL )
- return ;
- vlc_mutex_lock( &p_extensions_manager->lock );
+ if (p_extensions_manager == NULL)
+ return;
+ vlc_mutex_lock(&p_extensions_manager->lock);
extension_t *p_ext;
- FOREACH_ARRAY( p_ext, p_extensions_manager->extensions )
- {
- if( extension_IsActivated( p_extensions_manager, p_ext ) )
- {
- extension_PlayingChanged( p_extensions_manager, p_ext, state );
- }
+ FOREACH_ARRAY(p_ext, p_extensions_manager->extensions) {
+ if (extension_IsActivated(p_extensions_manager, p_ext))
+ extension_PlayingChanged(p_extensions_manager, p_ext, state);
}
FOREACH_END()
- vlc_mutex_unlock( &p_extensions_manager->lock );
+ vlc_mutex_unlock(&p_extensions_manager->lock);
}
- (void)metaChanged:(input_item_t *)p_input
{
//This is unlikely, but can happen if no extension modules can be loaded.
- if ( p_extensions_manager == NULL )
- return ;
- vlc_mutex_lock( &p_extensions_manager->lock );
+ if (p_extensions_manager == NULL)
+ return;
+ vlc_mutex_lock(&p_extensions_manager->lock);
extension_t *p_ext;
- FOREACH_ARRAY( p_ext, p_extensions_manager->extensions )
- {
- if( extension_IsActivated( p_extensions_manager, p_ext ) )
- {
- extension_MetaChanged( p_extensions_manager, p_ext );
- }
+ FOREACH_ARRAY(p_ext, p_extensions_manager->extensions) {
+ if (extension_IsActivated(p_extensions_manager, p_ext))
+ extension_MetaChanged(p_extensions_manager, p_ext);
}
FOREACH_END()
- vlc_mutex_unlock( &p_extensions_manager->lock );
+ vlc_mutex_unlock(&p_extensions_manager->lock);
}
- (void)dealloc
{
- msg_Dbg( p_intf, "Killing extension dialog provider" );
+ msg_Dbg(p_intf, "Killing extension dialog provider");
[ExtensionsDialogProvider killInstance];
- if( p_extensions_manager )
- vlc_object_release( p_extensions_manager );
+ if (p_extensions_manager)
+ vlc_object_release(p_extensions_manager);
[p_extDict release];