Commit 15622f88 authored by Jon Lech Johansen's avatar Jon Lech Johansen

* ./modules/gui/macosx: added macosx-adev and macosx-vdev config vars.

parent a1181096
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* aout.m: CoreAudio output plugin * aout.m: CoreAudio output plugin
***************************************************************************** *****************************************************************************
* Copyright (C) 2002-2003 VideoLAN * Copyright (C) 2002-2003 VideoLAN
* $Id: aout.m,v 1.20 2003/01/13 20:02:37 jlj Exp $ * $Id: aout.m,v 1.21 2003/01/15 00:49:49 jlj Exp $
* *
* Authors: Colin Delacroix <colin@zoy.org> * Authors: Colin Delacroix <colin@zoy.org>
* Jon Lech Johansen <jon-vl@nanocrew.net> * Jon Lech Johansen <jon-vl@nanocrew.net>
...@@ -173,10 +173,10 @@ static OSStatus IOCallback ( AudioDeviceID inDevice, ...@@ -173,10 +173,10 @@ static OSStatus IOCallback ( AudioDeviceID inDevice,
int E_(OpenAudio)( vlc_object_t * p_this ) int E_(OpenAudio)( vlc_object_t * p_this )
{ {
OSStatus err; OSStatus err;
vlc_value_t val;
UInt32 i, i_param_size; UInt32 i, i_param_size;
struct aout_sys_t * p_sys; struct aout_sys_t * p_sys;
aout_instance_t * p_aout = (aout_instance_t *)p_this; aout_instance_t * p_aout = (aout_instance_t *)p_this;
vlc_value_t val;
/* Allocate structure */ /* Allocate structure */
p_sys = (struct aout_sys_t *)malloc( sizeof( struct aout_sys_t ) ); p_sys = (struct aout_sys_t *)malloc( sizeof( struct aout_sys_t ) );
...@@ -198,6 +198,8 @@ int E_(OpenAudio)( vlc_object_t * p_this ) ...@@ -198,6 +198,8 @@ int E_(OpenAudio)( vlc_object_t * p_this )
if( var_Type( p_aout, "audio-device" ) == 0 ) if( var_Type( p_aout, "audio-device" ) == 0 )
{ {
UInt32 i_option = config_GetInt( p_aout, "macosx-adev" );
var_Create( p_aout, "audio-device", VLC_VAR_STRING | var_Create( p_aout, "audio-device", VLC_VAR_STRING |
VLC_VAR_HASCHOICE ); VLC_VAR_HASCHOICE );
...@@ -205,15 +207,21 @@ int E_(OpenAudio)( vlc_object_t * p_this ) ...@@ -205,15 +207,21 @@ int E_(OpenAudio)( vlc_object_t * p_this )
{ {
val.psz_string = p_sys->p_options[i].sz_option; val.psz_string = p_sys->p_options[i].sz_option;
var_Change( p_aout, "audio-device", VLC_VAR_ADDCHOICE, &val ); var_Change( p_aout, "audio-device", VLC_VAR_ADDCHOICE, &val );
if( i == i_option )
{
var_Set( p_aout, "audio-device", val );
}
} }
var_AddCallback( p_aout, "audio-device", aout_ChannelsRestart, var_AddCallback( p_aout, "audio-device", aout_ChannelsRestart,
NULL ); NULL );
val.b_bool = VLC_TRUE;
var_Set( p_aout, "intf-change", val );
} }
val.b_bool = VLC_TRUE;
var_Set( p_aout, "intf-change", val );
/* Get selected device */ /* Get requested device */
if( GetDevice( p_aout, &p_sys->devid ) ) if( GetDevice( p_aout, &p_sys->devid ) )
{ {
msg_Err( p_aout, "GetDevice failed" ); msg_Err( p_aout, "GetDevice failed" );
...@@ -879,9 +887,8 @@ static void FreeStream( UInt32 i_dev, aout_instance_t *p_aout, ...@@ -879,9 +887,8 @@ static void FreeStream( UInt32 i_dev, aout_instance_t *p_aout,
static int GetDevice( aout_instance_t *p_aout, AudioDeviceID *p_devid ) static int GetDevice( aout_instance_t *p_aout, AudioDeviceID *p_devid )
{ {
OSStatus err; OSStatus err;
char *psz_tmp;
vlc_value_t val; vlc_value_t val;
UInt32 i_option; unsigned int i_option;
struct aout_dev_t * p_dev; struct aout_dev_t * p_dev;
struct aout_option_t * p_option; struct aout_option_t * p_option;
...@@ -893,16 +900,12 @@ static int GetDevice( aout_instance_t *p_aout, AudioDeviceID *p_devid ) ...@@ -893,16 +900,12 @@ static int GetDevice( aout_instance_t *p_aout, AudioDeviceID *p_devid )
return( VLC_ENOVAR ); return( VLC_ENOVAR );
} }
psz_tmp = strchr( val.psz_string, ':' ); if( !sscanf( val.psz_string, "%d:", &i_option ) ||
if( psz_tmp == NULL ) p_sys->i_options <= i_option )
{ {
msg_Err( p_aout, "audio-device value missing seperator" ); i_option = 0;
free( (void *)val.psz_string );
return( VLC_EGENERIC );
} }
*psz_tmp = '\0';
i_option = atol( val.psz_string );
free( (void *)val.psz_string ); free( (void *)val.psz_string );
p_option = &p_sys->p_options[i_option]; p_option = &p_sys->p_options[i_option];
...@@ -925,6 +928,8 @@ static int GetDevice( aout_instance_t *p_aout, AudioDeviceID *p_devid ) ...@@ -925,6 +928,8 @@ static int GetDevice( aout_instance_t *p_aout, AudioDeviceID *p_devid )
msg_Dbg( p_aout, "getting device [%ld]", p_option->i_dev ); msg_Dbg( p_aout, "getting device [%ld]", p_option->i_dev );
config_PutInt( p_aout, "macosx-adev", i_option );
*p_devid = p_dev->devid; *p_devid = p_dev->devid;
return( VLC_SUCCESS ); return( VLC_SUCCESS );
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* intf.m: MacOS X interface plugin * intf.m: MacOS X interface plugin
***************************************************************************** *****************************************************************************
* Copyright (C) 2002-2003 VideoLAN * Copyright (C) 2002-2003 VideoLAN
* $Id: intf.m,v 1.23 2003/01/13 17:11:14 ipkiss Exp $ * $Id: intf.m,v 1.24 2003/01/15 00:49:49 jlj Exp $
* *
* Authors: Jon Lech Johansen <jon-vl@nanocrew.net> * Authors: Jon Lech Johansen <jon-vl@nanocrew.net>
* Christophe Massiot <massiot@via.ecp.fr> * Christophe Massiot <massiot@via.ecp.fr>
...@@ -81,6 +81,8 @@ void E_(CloseIntf) ( vlc_object_t *p_this ) ...@@ -81,6 +81,8 @@ void E_(CloseIntf) ( vlc_object_t *p_this )
msg_Unsubscribe( p_intf, p_intf->p_sys->p_sub ); msg_Unsubscribe( p_intf, p_intf->p_sys->p_sub );
config_SaveConfigFile( p_intf, MODULE_STRING );
[p_intf->p_sys->o_sendport release]; [p_intf->p_sys->o_sendport release];
[p_intf->p_sys->o_pool release]; [p_intf->p_sys->o_pool release];
......
/***************************************************************************** /*****************************************************************************
* macosx.m: MacOS X plugin for vlc * macosx.m: MacOS X plugin for vlc
***************************************************************************** *****************************************************************************
* Copyright (C) 2001 VideoLAN * Copyright (C) 2001-2003 VideoLAN
* $Id: macosx.m,v 1.1 2002/08/04 17:23:43 sam Exp $ * $Id: macosx.m,v 1.2 2003/01/15 00:49:49 jlj Exp $
* *
* Authors: Colin Delacroix <colin@zoy.org> * Authors: Colin Delacroix <colin@zoy.org>
* Eugenio Jarosiewicz <ej0@cise.ufl.edu> * Eugenio Jarosiewicz <ej0@cise.ufl.edu>
...@@ -47,6 +47,9 @@ void E_(CloseVideo) ( vlc_object_t * ); ...@@ -47,6 +47,9 @@ void E_(CloseVideo) ( vlc_object_t * );
/***************************************************************************** /*****************************************************************************
* Module descriptor * Module descriptor
*****************************************************************************/ *****************************************************************************/
#define ADEV_TEXT N_("audio device")
#define VDEV_TEXT N_("video device")
vlc_module_begin(); vlc_module_begin();
set_description( _("MacOS X interface, sound and video module") ); set_description( _("MacOS X interface, sound and video module") );
add_submodule(); add_submodule();
...@@ -55,8 +58,12 @@ vlc_module_begin(); ...@@ -55,8 +58,12 @@ vlc_module_begin();
add_submodule(); add_submodule();
set_capability( "video output", 100 ); set_capability( "video output", 100 );
set_callbacks( E_(OpenVideo), E_(CloseVideo) ); set_callbacks( E_(OpenVideo), E_(CloseVideo) );
add_category_hint( N_("Video"), NULL );
add_integer( "macosx-vdev", 0, NULL, VDEV_TEXT, VDEV_TEXT );
add_submodule(); add_submodule();
set_capability( "audio output", 100 ); set_capability( "audio output", 100 );
set_callbacks( E_(OpenAudio), E_(CloseAudio) ); set_callbacks( E_(OpenAudio), E_(CloseAudio) );
add_category_hint( N_("Audio"), NULL );
add_integer( "macosx-adev", 0, NULL, ADEV_TEXT, ADEV_TEXT );
vlc_module_end(); vlc_module_end();
/***************************************************************************** /*****************************************************************************
* vout.m: MacOS X video output plugin * vout.m: MacOS X video output plugin
***************************************************************************** *****************************************************************************
* Copyright (C) 2001, 2002 VideoLAN * Copyright (C) 2001-2003 VideoLAN
* $Id: vout.m,v 1.11 2003/01/05 16:23:57 massiot Exp $ * $Id: vout.m,v 1.12 2003/01/15 00:49:49 jlj Exp $
* *
* Authors: Colin Delacroix <colin@zoy.org> * Authors: Colin Delacroix <colin@zoy.org>
* Florian G. Pflug <fgp@phlo.org> * Florian G. Pflug <fgp@phlo.org>
...@@ -177,19 +177,20 @@ int E_(OpenVideo) ( vlc_object_t *p_this ) ...@@ -177,19 +177,20 @@ int E_(OpenVideo) ( vlc_object_t *p_this )
NSAutoreleasePool * o_pool = [[NSAutoreleasePool alloc] init]; NSAutoreleasePool * o_pool = [[NSAutoreleasePool alloc] init];
NSArray * o_screens = [NSScreen screens]; NSArray * o_screens = [NSScreen screens];
if ( [o_screens count] > 0 ) if( [o_screens count] > 0 && var_Type( p_vout, "video-device" ) == 0 )
{ {
int i = 1; int i = 1;
vlc_value_t val; vlc_value_t val;
NSScreen * o_screen; NSScreen * o_screen;
var_Destroy( p_vout, "video-device" ); int i_option = config_GetInt( p_vout, "macosx-vdev" );
var_Create( p_vout, "video-device",
VLC_VAR_STRING | VLC_VAR_HASCHOICE ); var_Create( p_vout, "video-device", VLC_VAR_STRING |
VLC_VAR_HASCHOICE );
NSEnumerator * o_enumerator = [o_screens objectEnumerator]; NSEnumerator * o_enumerator = [o_screens objectEnumerator];
while ( (o_screen = [o_enumerator nextObject]) != NULL ) while( (o_screen = [o_enumerator nextObject]) != NULL )
{ {
char psz_temp[255]; char psz_temp[255];
NSRect s_rect = [o_screen frame]; NSRect s_rect = [o_screen frame];
...@@ -201,6 +202,11 @@ int E_(OpenVideo) ( vlc_object_t *p_this ) ...@@ -201,6 +202,11 @@ int E_(OpenVideo) ( vlc_object_t *p_this )
val.psz_string = psz_temp; val.psz_string = psz_temp;
var_Change( p_vout, "video-device", VLC_VAR_ADDCHOICE, &val ); var_Change( p_vout, "video-device", VLC_VAR_ADDCHOICE, &val );
if( ( i - 1 ) == i_option )
{
var_Set( p_vout, "video-device", val );
}
i++; i++;
} }
...@@ -1016,7 +1022,9 @@ static void QTFreePicture( vout_thread_t *p_vout, picture_t *p_pic ) ...@@ -1016,7 +1022,9 @@ static void QTFreePicture( vout_thread_t *p_vout, picture_t *p_pic )
} }
else else
{ {
o_screen = [o_screens objectAtIndex: i_index - 1]; i_index--;
o_screen = [o_screens objectAtIndex: i_index];
config_PutInt( p_vout, "macosx-vdev", i_index );
} }
free( val.psz_string ); free( val.psz_string );
......
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