Changeset e1aabc8fe10fe18d159c32ac2fb34d3744744927
- Timestamp:
- 04/08/03 01:11:21 (5 years ago)
- git-parent:
- Files:
-
- include/audio_output.h (modified) (2 diffs)
- include/configuration.h (modified) (2 diffs)
- modules/audio_output/alsa.c (modified) (9 diffs)
- modules/gui/gtk/display.c (modified) (5 diffs)
- modules/gui/gtk/display.h (modified) (2 diffs)
- modules/video_output/x11/xcommon.c (modified) (5 diffs)
- modules/video_output/x11/xcommon.h (modified) (2 diffs)
- src/audio_output/intf.c (modified) (3 diffs)
- src/misc/configuration.c (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
include/audio_output.h
r30336bb re1aabc8 3 3 ***************************************************************************** 4 4 * Copyright (C) 2002 VideoLAN 5 * $Id: audio_output.h,v 1.8 0 2003/05/04 22:42:14gbazin Exp $5 * $Id: audio_output.h,v 1.81 2003/08/03 23:11:21 gbazin Exp $ 6 6 * 7 7 * Authors: Christophe Massiot <massiot@via.ecp.fr> … … 205 205 VLC_EXPORT( int, __aout_VolumeMute, ( vlc_object_t *, audio_volume_t * ) ); 206 206 VLC_EXPORT( int, aout_Restart, ( aout_instance_t * p_aout ) ); 207 VLC_EXPORT( void, aout_FindAndRestart, ( vlc_object_t * p_this) );207 VLC_EXPORT( int, aout_FindAndRestart, ( vlc_object_t *, const char *, vlc_value_t, vlc_value_t, void * ) ); 208 208 VLC_EXPORT( int, aout_ChannelsRestart, ( vlc_object_t *, const char *, vlc_value_t, vlc_value_t, void * ) ); 209 209 include/configuration.h
reb505a2 re1aabc8 5 5 ***************************************************************************** 6 6 * Copyright (C) 1999, 2000 VideoLAN 7 * $Id: configuration.h,v 1.2 8 2003/07/23 01:13:47gbazin Exp $7 * $Id: configuration.h,v 1.29 2003/08/03 23:11:21 gbazin Exp $ 8 8 * 9 9 * Authors: Gildas Bazin <gbazin@netcourrier.com> … … 65 65 66 66 /* Function to call when commiting a change */ 67 void ( * pf_callback ) ( vlc_object_t * ); 67 vlc_callback_t pf_callback; 68 void *p_callback_data; 68 69 69 70 char **ppsz_list; /* List of possible values for the option */ modules/audio_output/alsa.c
r1ec7da4 re1aabc8 3 3 ***************************************************************************** 4 4 * Copyright (C) 2000-2001 VideoLAN 5 * $Id: alsa.c,v 1.3 3 2003/07/27 16:20:53gbazin Exp $5 * $Id: alsa.c,v 1.34 2003/08/03 23:11:21 gbazin Exp $ 6 6 * 7 7 * Authors: Henri Fallon <henri@videolan.org> - Original Author … … 73 73 2 for s16). */ 74 74 #define ALSA_DEFAULT_PERIOD_SIZE 1024 75 #define ALSA_DEFAULT_BUFFER_SIZE ( ALSA_DEFAULT_PERIOD_SIZE << 4)75 #define ALSA_DEFAULT_BUFFER_SIZE ( ALSA_DEFAULT_PERIOD_SIZE << 8 ) 76 76 #define ALSA_SPDIF_PERIOD_SIZE A52_FRAME_NB 77 77 #define ALSA_SPDIF_BUFFER_SIZE ( ALSA_SPDIF_PERIOD_SIZE << 4 ) … … 108 108 static void Probe( aout_instance_t * p_aout, 109 109 const char * psz_device, const char * psz_iec_device, 110 int i_snd_pcm_format )110 int *pi_snd_pcm_format ) 111 111 { 112 112 struct aout_sys_t * p_sys = p_aout->output.p_sys; … … 141 141 142 142 if ( snd_pcm_hw_params_set_format( p_sys->p_snd_pcm, p_hw, 143 i_snd_pcm_format ) < 0 ) 144 { 145 /* Assume a FPU enabled computer can handle float32 format. 146 If somebody tells us it's not always true then we'll have 147 to change this */ 148 msg_Warn( p_aout, "unable to set stream sample size and word order" 149 ", disabling linear PCM audio" ); 150 snd_pcm_close( p_sys->p_snd_pcm ); 151 var_Destroy( p_aout, "audio-device" ); 152 return; 143 *pi_snd_pcm_format ) < 0 ) 144 { 145 if( *pi_snd_pcm_format != SND_PCM_FORMAT_S16 ) 146 { 147 *pi_snd_pcm_format = SND_PCM_FORMAT_S16; 148 if ( snd_pcm_hw_params_set_format( p_sys->p_snd_pcm, p_hw, 149 *pi_snd_pcm_format ) < 0 ) 150 { 151 msg_Warn( p_aout, "unable to set stream sample size and " 152 "word order, disabling linear PCM audio" ); 153 snd_pcm_close( p_sys->p_snd_pcm ); 154 var_Destroy( p_aout, "audio-device" ); 155 return; 156 } 157 } 153 158 } 154 159 … … 157 162 while ( i_channels > 0 ) 158 163 { 159 /* Here we have to probe multi-channel capabilities but I have160 no idea (at the moment) of how its managed by the ALSA161 library.162 It seems that '6' channels aren't well handled on a stereo163 sound card like my i810 but it requires some more164 investigations. That's why '4' and '6' cases are disabled.165 -- Bozo */166 164 if ( !snd_pcm_hw_params_test_channels( p_sys->p_snd_pcm, p_hw, 167 165 i_channels ) ) … … 340 338 if ( var_Type( p_aout, "audio-device" ) == 0 ) 341 339 { 342 Probe( p_aout, psz_device, psz_iec_device, i_snd_pcm_format ); 340 Probe( p_aout, psz_device, psz_iec_device, &i_snd_pcm_format ); 341 switch( i_snd_pcm_format ) 342 { 343 case SND_PCM_FORMAT_FLOAT: 344 i_vlc_pcm_format = VLC_FOURCC('f','l','3','2'); 345 break; 346 case SND_PCM_FORMAT_S16: 347 i_vlc_pcm_format = AOUT_FMT_S16_NE; 348 break; 349 } 343 350 } 344 351 … … 361 368 | AOUT_CHAN_REARLEFT | AOUT_CHAN_REARRIGHT 362 369 | AOUT_CHAN_LFE; 370 free( psz_device ); 371 psz_device = strdup( "surround51" ); 363 372 } 364 373 else if ( val.i_int == AOUT_VAR_2F2R ) … … 368 377 = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT 369 378 | AOUT_CHAN_REARLEFT | AOUT_CHAN_REARRIGHT; 379 free( psz_device ); 380 psz_device = strdup( "surround40" ); 370 381 } 371 382 else if ( val.i_int == AOUT_VAR_STEREO ) … … 417 428 else 418 429 { 430 msg_Dbg( p_aout, "opening ALSA device `%s'", psz_device ); 431 419 432 if ( ( i_snd_rc = snd_pcm_open( &p_sys->p_snd_pcm, psz_device, 420 433 SND_PCM_STREAM_PLAYBACK, 0 ) ) < 0 ) modules/gui/gtk/display.c
rcf3c980 re1aabc8 3 3 ***************************************************************************** 4 4 * Copyright (C) 1999, 2000 VideoLAN 5 * $Id: display.c,v 1.1 0 2003/05/05 16:09:39gbazin Exp $5 * $Id: display.c,v 1.11 2003/08/03 23:11:21 gbazin Exp $ 6 6 * 7 7 * Authors: Samuel Hocevar <sam@zoy.org> … … 216 216 * option gnome-tooltips 217 217 *****************************************************************************/ 218 void E_(GtkHideTooltips)( vlc_object_t *p_this ) 218 int E_(GtkHideTooltips)( vlc_object_t *p_this, const char *psz_name, 219 vlc_value_t oldval, vlc_value_t val, void *p_data ) 219 220 { 220 221 intf_thread_t *p_intf; … … 245 246 246 247 vlc_list_release( p_list ); 248 return VLC_SUCCESS; 247 249 } 248 250 … … 254 256 * FIXME: GNOME only because of missing icons in gtk interface 255 257 *****************************************************************************/ 256 void GtkHideToolbarText( vlc_object_t *p_this ) 258 int GtkHideToolbarText( vlc_object_t *p_this, const char *psz_name, 259 vlc_value_t oldval, vlc_value_t val, void *p_data ) 257 260 { 258 261 GtkToolbarStyle style; … … 282 285 283 286 vlc_list_release( p_list ); 287 return VLC_SUCCESS; 284 288 } 285 289 #endif modules/gui/gtk/display.h
r2799d36 re1aabc8 3 3 ***************************************************************************** 4 4 * Copyright (C) 1999, 2000 VideoLAN 5 * $Id: display.h,v 1. 2 2002/09/30 11:05:39 samExp $5 * $Id: display.h,v 1.3 2003/08/03 23:11:21 gbazin Exp $ 6 6 * 7 7 * Authors: Samuel Hocevar <sam@zoy.org> … … 29 29 gint E_(GtkModeManage) ( intf_thread_t * p_intf ); 30 30 void E_(GtkDisplayDate) ( GtkAdjustment *p_adj ); 31 void E_(GtkHideTooltips) ( vlc_object_t * ); 32 void GtkHideToolbarText ( vlc_object_t * ); 31 int E_(GtkHideTooltips) ( vlc_object_t *, const char *, 32 vlc_value_t, vlc_value_t, void * ); 33 int GtkHideToolbarText ( vlc_object_t *, const char *, 34 vlc_value_t, vlc_value_t, void * ); 33 35 modules/video_output/x11/xcommon.c
rda86628 re1aabc8 3 3 ***************************************************************************** 4 4 * Copyright (C) 1998-2001 VideoLAN 5 * $Id: xcommon.c,v 1.2 7 2003/08/02 14:06:22gbazin Exp $5 * $Id: xcommon.c,v 1.28 2003/08/03 23:11:21 gbazin Exp $ 6 6 * 7 7 * Authors: Vincent Seguin <seguin@via.ecp.fr> … … 118 118 #endif 119 119 120 static void TestNetWMSupport( vout_thread_t * ); 121 120 122 /***************************************************************************** 121 123 * Activate: allocate X11 video thread output method … … 269 271 p_vout->p_sys->b_altfullscreen = 0; 270 272 p_vout->p_sys->i_time_button_last_pressed = 0; 273 274 TestNetWMSupport( p_vout ); 271 275 272 276 return VLC_SUCCESS; … … 1454 1458 CWOverrideRedirect, 1455 1459 &attributes); 1456 } 1457 1458 /* Make sure the change is effective */ 1459 XReparentWindow( p_vout->p_sys->p_display, 1460 p_vout->p_sys->p_win->base_window, 1461 DefaultRootWindow( p_vout->p_sys->p_display ), 1462 0, 0 ); 1460 1461 /* Make sure the change is effective */ 1462 XReparentWindow( p_vout->p_sys->p_display, 1463 p_vout->p_sys->p_win->base_window, 1464 DefaultRootWindow( p_vout->p_sys->p_display ), 1465 0, 0 ); 1466 } 1467 1468 if( p_vout->p_sys->b_net_wm_state_fullscreen ) 1469 { 1470 XClientMessageEvent event; 1471 1472 memset( &event, 0, sizeof( XClientMessageEvent ) ); 1473 1474 event.type = ClientMessage; 1475 event.message_type = p_vout->p_sys->net_wm_state; 1476 event.display = p_vout->p_sys->p_display; 1477 event.window = p_vout->p_sys->p_win->base_window; 1478 event.format = 32; 1479 event.data.l[ 0 ] = 1; /* set property */ 1480 event.data.l[ 1 ] = p_vout->p_sys->net_wm_state_fullscreen; 1481 1482 XSendEvent( p_vout->p_sys->p_display, 1483 DefaultRootWindow( p_vout->p_sys->p_display ), 1484 False, SubstructureRedirectMask, 1485 (XEvent*)&event ); 1486 } 1487 else 1488 { 1489 /* Make sure the change is effective */ 1490 XReparentWindow( p_vout->p_sys->p_display, 1491 p_vout->p_sys->p_win->base_window, 1492 DefaultRootWindow( p_vout->p_sys->p_display ), 1493 0, 0 ); 1494 } 1463 1495 1464 1496 /* fullscreen window size and position */ … … 2198 2230 } 2199 2231 #endif 2232 2233 /***************************************************************************** 2234 * TestNetWMSupport: tests for Extended Window Manager Hints support 2235 *****************************************************************************/ 2236 static void TestNetWMSupport( vout_thread_t *p_vout ) 2237 { 2238 int i_ret, i_format; 2239 unsigned long i, i_items, i_bytesafter; 2240 Atom net_wm_supported, *p_args = NULL; 2241 2242 p_vout->p_sys->b_net_wm_state_fullscreen = VLC_FALSE; 2243 p_vout->p_sys->b_net_wm_state_above = VLC_FALSE; 2244 p_vout->p_sys->b_net_wm_state_below = VLC_FALSE; 2245 p_vout->p_sys->b_net_wm_state_stays_on_top = VLC_FALSE; 2246 2247 net_wm_supported = 2248 XInternAtom( p_vout->p_sys->p_display, "_NET_SUPPORTED", False ); 2249 2250 i_ret = XGetWindowProperty( p_vout->p_sys->p_display, 2251 DefaultRootWindow( p_vout->p_sys->p_display ), 2252 net_wm_supported, 2253 0, 16384, False, AnyPropertyType, 2254 &net_wm_supported, 2255 &i_format, &i_items, &i_bytesafter, 2256 (unsigned char **)&p_args ); 2257 2258 if( i_ret != Success || i_items == 0 ) return; 2259 2260 msg_Dbg( p_vout, "Window manager supports NetWM" ); 2261 2262 p_vout->p_sys->net_wm_state = 2263 XInternAtom( p_vout->p_sys->p_display, "_NET_WM_STATE", False ); 2264 p_vout->p_sys->net_wm_state_fullscreen = 2265 XInternAtom( p_vout->p_sys->p_display, "_NET_WM_STATE_FULLSCREEN", 2266 False ); 2267 p_vout->p_sys->net_wm_state_above = 2268 XInternAtom( p_vout->p_sys->p_display, "_NET_WM_STATE_ABOVE", False ); 2269 p_vout->p_sys->net_wm_state_below = 2270 XInternAtom( p_vout->p_sys->p_display, "_NET_WM_STATE_BELOW", False ); 2271 p_vout->p_sys->net_wm_state_stays_on_top = 2272 XInternAtom( p_vout->p_sys->p_display, "_NET_WM_STATE_STAYS_ON_TOP", 2273 False ); 2274 2275 for( i = 0; i < i_items; i++ ) 2276 { 2277 if( p_args[i] == p_vout->p_sys->net_wm_state_fullscreen ) 2278 { 2279 msg_Dbg( p_vout, 2280 "Window manager supports _NET_WM_STATE_FULLSCREEN" ); 2281 p_vout->p_sys->b_net_wm_state_fullscreen = VLC_TRUE; 2282 } 2283 else if( p_args[i] == p_vout->p_sys->net_wm_state_above ) 2284 { 2285 msg_Dbg( p_vout, "Window manager supports _NET_WM_STATE_ABOVE" ); 2286 p_vout->p_sys->b_net_wm_state_above = VLC_TRUE; 2287 } 2288 else if( p_args[i] == p_vout->p_sys->net_wm_state_below ) 2289 { 2290 msg_Dbg( p_vout, "Window manager supports _NET_WM_STATE_BELOW" ); 2291 p_vout->p_sys->b_net_wm_state_below = VLC_TRUE; 2292 } 2293 else if( p_args[i] == p_vout->p_sys->net_wm_state_stays_on_top ) 2294 { 2295 msg_Dbg( p_vout, 2296 "Window manager supports _NET_WM_STATE_STAYS_ON_TOP" ); 2297 p_vout->p_sys->b_net_wm_state_stays_on_top = VLC_TRUE; 2298 } 2299 } 2300 2301 XFree( p_args ); 2302 } modules/video_output/x11/xcommon.h
r2b5d294 re1aabc8 3 3 ***************************************************************************** 4 4 * Copyright (C) 1998-2001 VideoLAN 5 * $Id: xcommon.h,v 1. 7 2003/07/29 09:32:14 samExp $5 * $Id: xcommon.h,v 1.8 2003/08/03 23:11:21 gbazin Exp $ 6 6 * 7 7 * Authors: Vincent Seguin <seguin@via.ecp.fr> … … 129 129 mtime_t i_time_button_last_pressed; /* to track dbl-clicks */ 130 130 Pixmap cursor_pixmap; 131 132 /* Window manager properties */ 133 Atom net_wm_state; 134 Atom net_wm_state_fullscreen; 135 vlc_bool_t b_net_wm_state_fullscreen; 136 Atom net_wm_state_above; 137 vlc_bool_t b_net_wm_state_above; 138 Atom net_wm_state_stays_on_top; 139 vlc_bool_t b_net_wm_state_stays_on_top; 140 Atom net_wm_state_below; 141 vlc_bool_t b_net_wm_state_below; 131 142 }; 132 143 src/audio_output/intf.c
re27abe7 re1aabc8 3 3 ***************************************************************************** 4 4 * Copyright (C) 2002 VideoLAN 5 * $Id: intf.c,v 1.1 7 2003/02/12 14:22:23 hartman Exp $5 * $Id: intf.c,v 1.18 2003/08/03 23:11:21 gbazin Exp $ 6 6 * 7 7 * Authors: Christophe Massiot <massiot@via.ecp.fr> … … 386 386 * rebuilding the audio-device and audio-channels variables. 387 387 *****************************************************************************/ 388 void aout_FindAndRestart( vlc_object_t * p_this ) 388 int aout_FindAndRestart( vlc_object_t * p_this, const char *psz_name, 389 vlc_value_t oldval, vlc_value_t val, void *p_data ) 389 390 { 390 391 aout_instance_t * p_aout = vlc_object_find( p_this, VLC_OBJECT_AOUT, 391 392 FIND_ANYWHERE ); 392 393 393 if ( p_aout == NULL ) return ;394 if ( p_aout == NULL ) return VLC_SUCCESS; 394 395 395 396 if ( var_Type( p_aout, "audio-device" ) != 0 ) … … 404 405 aout_Restart( p_aout ); 405 406 vlc_object_release( p_aout ); 407 408 return VLC_SUCCESS; 406 409 } 407 410 src/misc/configuration.c
reb505a2 re1aabc8 3 3 ***************************************************************************** 4 4 * Copyright (C) 2001 VideoLAN 5 * $Id: configuration.c,v 1.6 0 2003/07/23 01:13:48gbazin Exp $5 * $Id: configuration.c,v 1.61 2003/08/03 23:11:21 gbazin Exp $ 6 6 * 7 7 * Authors: Gildas Bazin <gbazin@netcourrier.com> … … 219 219 { 220 220 module_config_t *p_config; 221 vlc_value_t oldval, val; 221 222 222 223 p_config = config_FindConfig( p_this, psz_name ); … … 239 240 vlc_mutex_lock( p_config->p_lock ); 240 241 241 /* free old string*/242 if( p_config->psz_value ) free( p_config->psz_value );242 /* backup old value */ 243 oldval.psz_string = p_config->psz_value; 243 244 244 245 if( psz_value && *psz_value ) p_config->psz_value = strdup( psz_value ); 245 246 else p_config->psz_value = NULL; 246 247 248 val.psz_string = p_config->psz_value; 249 247 250 vlc_mutex_unlock( p_config->p_lock ); 248 251 249 252 if( p_config->pf_callback ) 250 253 { 251 p_config->pf_callback( p_this ); 252 } 254 p_config->pf_callback( p_this, psz_name, oldval, val, 255 p_config->p_callback_data ); 256 } 257 258 /* free old string */ 259 if( oldval.psz_string ) free( oldval.psz_string ); 253 260 } 254 261 … … 263 270 { 264 271 module_config_t *p_config; 272 vlc_value_t oldval, val; 265 273 266 274 p_config = config_FindConfig( p_this, psz_name ); … … 279 287 } 280 288 289 /* backup old value */ 290 oldval.i_int = p_config->i_value; 291 281 292 /* if i_min == i_max == 0, then do not use them */ 282 293 if ((p_config->i_min == 0) && (p_config->i_max == 0)) … … 297 308 } 298 309 310 val.i_int = p_config->i_value; 311 299 312 if( p_config->pf_callback ) 300 313 { 301 p_config->pf_callback( p_this ); 314 p_config->pf_callback( p_this, psz_name, oldval, val, 315 p_config->p_callback_data ); 302 316 } 303 317 } … … 313 327 { 314 328 module_config_t *p_config; 329 vlc_value_t oldval, val; 315 330 316 331 p_config = config_FindConfig( p_this, psz_name ); … … 328 343 } 329 344 345 /* backup old value */ 346 oldval.f_float = p_config->f_value; 347 330 348 /* if f_min == f_max == 0, then do not use them */ 331 349 if ((p_config->f_min == 0) && (p_config->f_max == 0)) … … 346 364 } 347 365 366 val.f_float = p_config->f_value; 367 348 368 if( p_config->pf_callback ) 349 369 { 350 p_config->pf_callback( p_this ); 370 p_config->pf_callback( p_this, psz_name, oldval, val, 371 p_config->p_callback_data ); 351 372 } 352 373 }
