Commit ef066dad authored by Derk-Jan Hartman's avatar Derk-Jan Hartman

* Fix blocking intf launching without pf_run on OSX

parent d38407e0
...@@ -154,65 +154,37 @@ int intf_RunThread( intf_thread_t *p_intf ) ...@@ -154,65 +154,37 @@ int intf_RunThread( intf_thread_t *p_intf )
#ifdef __APPLE__ #ifdef __APPLE__
NSAutoreleasePool * o_pool; NSAutoreleasePool * o_pool;
if( p_intf->b_block ) /* If !clivlc, then run as a OS X application */
{
/* This is the primary intf */
/* Run a manager thread, launch the interface, kill the manager */
if( vlc_thread_create( p_intf, "manage", Manager,
VLC_THREAD_PRIORITY_LOW, VLC_FALSE ) )
{
msg_Err( p_intf, "cannot spawn manager thread" );
return VLC_EGENERIC;
}
}
if( p_intf->b_block && strncmp( p_intf->p_libvlc->psz_object_name, if( p_intf->b_block && strncmp( p_intf->p_libvlc->psz_object_name,
"clivlc", 6) ) "clivlc", 6) )
{ {
o_pool = [[NSAutoreleasePool alloc] init]; o_pool = [[NSAutoreleasePool alloc] init];
[VLCApplication sharedApplication]; [VLCApplication sharedApplication];
[NSApp setVLC: p_intf->p_libvlc]; [NSApp setVLC: p_intf->p_libvlc];
}
if( p_intf->b_block && if( p_intf->pf_run )
( !strncmp( p_intf->p_module->psz_object_name, "macosx" , 6 ) || RunInterface( p_intf );
!strncmp( p_intf->p_libvlc->psz_object_name, "clivlc", 6 ) ) ) else
{ {
/* VLC in normal primary interface mode */ [NSApp run];
RunInterface( p_intf ); while( !intf_ShouldDie( p_intf ) )
msleep( INTF_IDLE_SLEEP * 2);
}
p_intf->b_die = VLC_TRUE; p_intf->b_die = VLC_TRUE;
} }
else else
#endif
if( p_intf->b_block )
{ {
/* This interface doesn't need to be run */ /* If we are clivlc+macosx, don't run the macosx GUI */
if( !p_intf->pf_run )
return VLC_SUCCESS;
/* Run the interface in a separate thread */
if( !strcmp( p_intf->p_module->psz_object_name, "macosx" ) ) if( !strcmp( p_intf->p_module->psz_object_name, "macosx" ) )
{ {
msg_Err( p_intf, "You cannot run the MacOS X module as an " msg_Err( p_intf, "You cannot run the MacOS X module as an "
"extra interface. Please read the " "interface in clivlc mode. Please read the "
"README.MacOSX.rtf file."); "README.MacOSX.rtf file.");
return VLC_EGENERIC; return VLC_EGENERIC;
} }
if( vlc_thread_create( p_intf, "interface", RunInterface,
VLC_THREAD_PRIORITY_LOW, VLC_FALSE ) )
{
msg_Err( p_intf, "cannot spawn interface thread" );
return VLC_EGENERIC;
}
if( p_intf->b_block )
{
/* VLC in primary interface mode with a working macosx vout */
[NSApp run];
p_intf->b_die = VLC_TRUE;
}
}
#else
if( p_intf->b_block )
{
/* If the main interface does not have a run function, /* If the main interface does not have a run function,
* implement a waiting loop ourselves * implement a waiting loop ourselves
*/ */
...@@ -231,6 +203,15 @@ int intf_RunThread( intf_thread_t *p_intf ) ...@@ -231,6 +203,15 @@ int intf_RunThread( intf_thread_t *p_intf )
if( !p_intf->pf_run ) if( !p_intf->pf_run )
return VLC_SUCCESS; return VLC_SUCCESS;
/* Run the interface in a separate thread */
if( !strcmp( p_intf->p_module->psz_object_name, "macosx" ) )
{
msg_Err( p_intf, "You cannot run the MacOS X module as an "
"extra interface. Please read the "
"README.MacOSX.rtf file.");
return VLC_EGENERIC;
}
/* Run the interface in a separate thread */ /* Run the interface in a separate thread */
if( vlc_thread_create( p_intf, "interface", RunInterface, if( vlc_thread_create( p_intf, "interface", RunInterface,
VLC_THREAD_PRIORITY_LOW, VLC_FALSE ) ) VLC_THREAD_PRIORITY_LOW, VLC_FALSE ) )
...@@ -239,7 +220,6 @@ int intf_RunThread( intf_thread_t *p_intf ) ...@@ -239,7 +220,6 @@ int intf_RunThread( intf_thread_t *p_intf )
return VLC_EGENERIC; return VLC_EGENERIC;
} }
} }
#endif
return VLC_SUCCESS; return VLC_SUCCESS;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment