* controls.m: MacOS X interface plugin
*****************************************************************************
* Copyright (C) 2002-2003 VideoLAN
- * $Id: controls.m,v 1.50 2003/10/31 15:54:53 hartman Exp $
+ * $Id: controls.m,v 1.51 2003/11/02 06:33:49 hartman Exp $
*
* Authors: Jon Lech Johansen <jon-vl@nanocrew.net>
* Christophe Massiot <massiot@via.ecp.fr>
if( playlist_IsPlaying( p_playlist ) )
{
- vout_OSDMessage( p_intf, _( "Pause" ) );
+ vout_OSDMessage( (vlc_object_t *)p_intf, _( "Pause" ) );
playlist_Pause( p_playlist );
vlc_object_release( p_playlist );
}
if( !playlist_IsEmpty( p_playlist ) )
{
playlist_Play( p_playlist );
- vout_OSDMessage( p_intf, _( "Play" ) );
+ vout_OSDMessage( (vlc_object_t *)p_intf, _( "Play" ) );
vlc_object_release( p_playlist );
}
else
FIND_ANYWHERE );
if( p_playlist != NULL )
{
- vout_OSDMessage( p_intf, _( "Stop" ) );
+ vout_OSDMessage( (vlc_object_t *)p_intf, _( "Stop" ) );
playlist_Stop( p_playlist );
vlc_object_release( p_playlist );
}
vlc_value_t val; val.b_bool = VLC_TRUE;
var_Set( p_input, "rate-faster", val );
- vout_OSDMessage( p_intf, _( "Faster" ) );
+ vout_OSDMessage( (vlc_object_t *)p_intf, _( "Faster" ) );
vlc_object_release( p_input );
}
}
vlc_value_t val; val.b_bool = VLC_TRUE;
var_Set( p_input, "rate-slower", val );
- vout_OSDMessage( p_intf, _( "Slower" ) );
+ vout_OSDMessage( (vlc_object_t *)p_intf, _( "Slower" ) );
vlc_object_release( p_input );
}
}
#undef p_area
vlc_object_release( p_playlist );
- vout_OSDMessage( p_intf, _( "Previous" ) );
+ vout_OSDMessage( (vlc_object_t *)p_intf, _( "Previous" ) );
}
- (IBAction)next:(id)sender
#undef p_area
vlc_object_release( p_playlist );
- vout_OSDMessage( p_intf, _( "Next" ) );
+ vout_OSDMessage( (vlc_object_t *)p_intf, _( "Next" ) );
}
- (IBAction)random:(id)sender
var_Set( p_playlist, "random", val );
if( val.b_bool )
{
- vout_OSDMessage( p_intf, _( "Shuffle On" ) );
+ vout_OSDMessage( (vlc_object_t *)p_intf, _( "Shuffle On" ) );
}
else
{
- vout_OSDMessage( p_intf, _( "Shuffle Off" ) );
+ vout_OSDMessage( (vlc_object_t *)p_intf, _( "Shuffle Off" ) );
}
vlc_object_release( p_playlist );
var_Set( p_playlist, "repeat", val );
if( val.b_bool )
{
- vout_OSDMessage( p_intf, _( "Repeat On" ) );
+ vout_OSDMessage( (vlc_object_t *)p_intf, _( "Repeat On" ) );
}
else
{
- vout_OSDMessage( p_intf, _( "Repeat Off" ) );
+ vout_OSDMessage( (vlc_object_t *)p_intf, _( "Repeat Off" ) );
}
vlc_object_release( p_playlist );
var_Set( p_playlist, "loop", val );
if( val.b_bool )
{
- vout_OSDMessage( p_intf, _( "Loop On" ) );
+ vout_OSDMessage( (vlc_object_t *)p_intf, _( "Loop On" ) );
}
else
{
- vout_OSDMessage( p_intf, _( "Loop Off" ) );
+ vout_OSDMessage( (vlc_object_t *)p_intf, _( "Loop Off" ) );
}
vlc_object_release( p_playlist );
[o_volumeslider setFloatValue: (float)(i_volume / AOUT_VOLUME_STEP)];
sprintf( string, "Vol %d%%", i_volume*100/AOUT_VOLUME_MAX );
- vout_OSDMessage( p_intf, string );
+ vout_OSDMessage( (vlc_object_t *)p_intf, string );
}
- (IBAction)windowAction:(id)sender
* visual.c : Visualisation system
*****************************************************************************
* Copyright (C) 2002 VideoLAN
- * $Id: visual.c,v 1.10 2003/09/24 10:21:32 zorglub Exp $
+ * $Id: visual.c,v 1.11 2003/11/02 06:33:49 hartman Exp $
*
* Authors: Clément Stenac <zorglub@via.ecp.fr>
*
*****************************************************************************/
static void DoWork( aout_instance_t *, aout_filter_t *,
aout_buffer_t *, aout_buffer_t * );
+static int FilterCallback( vlc_object_t *, char const *,
+ vlc_value_t, vlc_value_t, void * );
static struct
{
char *psz_name;
{
aout_filter_t *p_filter = (aout_filter_t *)p_this;
aout_filter_sys_t *p_sys;
+ vlc_value_t val;
char *psz_effects, *psz_parser;
p_sys->effect = NULL;
/* Parse the effect list */
- psz_parser = psz_effects = config_GetPsz( p_filter, "effect-list" );
+ var_Create( p_filter, "effect-list", VLC_VAR_STRING | VLC_VAR_DOINHERIT );
+ var_Get( p_filter, "effect-list", &val);
+ psz_parser = psz_effects = strdup( val.psz_string );
+ free( val.psz_string );
msg_Dbg( p_filter , "Building list of effects" );
+
+ var_AddCallback( p_filter, "effect-list", FilterCallback, NULL );
while( psz_parser && *psz_parser != '\0' )
{
free( p_filter->p_sys );
}
+
+/*****************************************************************************
+ * FilterCallback: called when changing the deinterlace method on the fly.
+ *****************************************************************************/
+static int FilterCallback( vlc_object_t *p_this, char const *psz_cmd,
+ vlc_value_t oldval, vlc_value_t newval,
+ void *p_data )
+{
+ aout_filter_t *p_filter = (aout_filter_t *)p_this;
+ /* restart this baby */
+ msg_Dbg( p_filter, "We should restart the visual filter" );
+ return VLC_SUCCESS;
+}
+
* input.c : internal management of input streams for the audio output
*****************************************************************************
* Copyright (C) 2002 VideoLAN
- * $Id: input.c,v 1.38 2003/09/02 18:06:45 gbazin Exp $
+ * $Id: input.c,v 1.39 2003/11/02 06:33:49 hartman Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
*
#include <string.h>
#include <vlc/vlc.h>
+#include <vlc/input.h> /* for input_thread_t and i_pts_delay */
#ifdef HAVE_ALLOCA_H
# include <alloca.h>
#include "audio_output.h"
#include "aout_internal.h"
+static int VisualizationCallback( vlc_object_t *, char const *,
+ vlc_value_t, vlc_value_t, void * );
/*****************************************************************************
* aout_InputNew : allocate a new input and rework the filter pipeline
int aout_InputNew( aout_instance_t * p_aout, aout_input_t * p_input )
{
audio_sample_format_t intermediate_format;
-
+ vlc_value_t val, text;
char * psz_filters;
aout_FormatPrint( p_aout, "input", &p_input->input );
}
free( psz_filters );
}
+
+ var_Create( p_aout, "visual", VLC_VAR_STRING | VLC_VAR_HASCHOICE );
+ text.psz_string = _("Visualizations");
+ var_Change( p_aout, "visual", VLC_VAR_SETTEXT, &text, NULL );
+ val.psz_string = ""; text.psz_string = _("Disable");
+ var_Change( p_aout, "visual", VLC_VAR_ADDCHOICE, &val, &text );
+ val.psz_string = "random"; text.psz_string = _("Random");
+ var_Change( p_aout, "visual", VLC_VAR_ADDCHOICE, &val, &text );
+ val.psz_string = "scope"; text.psz_string = _("Scope");
+ var_Change( p_aout, "visual", VLC_VAR_ADDCHOICE, &val, &text );
+ val.psz_string = "spectrum"; text.psz_string = _("Spectrum");
+ var_Change( p_aout, "visual", VLC_VAR_ADDCHOICE, &val, &text );
+ val.psz_string = "goom"; text.psz_string = _("Goom");
+ var_Change( p_aout, "visual", VLC_VAR_ADDCHOICE, &val, &text );
+ if( var_Get( p_aout, "effect-list", &val ) == VLC_SUCCESS )
+ {
+ var_Set( p_aout, "visual", val );
+ }
+ var_AddCallback( p_aout, "visual", VisualizationCallback, NULL );
+ var_Create( p_aout, "audio-filter", VLC_VAR_STRING );
+ text.psz_string = _("Audio filters");
+ var_Change( p_aout, "audio-filter", VLC_VAR_SETTEXT, &text, NULL );
+ var_Change( p_aout, "audio-filter", VLC_VAR_INHERITVALUE, &val, NULL );
+ if( var_Get( p_aout, "audio-filter", &val ) == VLC_SUCCESS )
+ {
+ var_Set( p_aout, "audio-filter", val );
+ }
+ //var_AddCallback( p_aout, "audio-filter", AudioFilterCallback, NULL );
+
/* Prepare hints for the buffer allocator. */
p_input->input_alloc.i_alloc_type = AOUT_ALLOC_HEAP;
p_input->input_alloc.i_bytes_per_sec = -1;
return 0;
}
+
+
+static int VisualizationCallback( vlc_object_t *p_this, char const *psz_cmd,
+ vlc_value_t oldval, vlc_value_t newval, void *p_data )
+{
+ aout_instance_t *p_aout = (aout_instance_t *)p_this;
+ input_thread_t *p_input;
+ vlc_value_t val;
+
+ char *psz_mode = newval.psz_string;
+ char *psz_filter;
+ unsigned int i;
+
+ psz_filter = config_GetPsz( p_aout, "audio-filter" );
+
+ if( !psz_mode || !*psz_mode )
+ {
+ config_PutPsz( p_aout, "audio-filter", "" );
+ }
+ else
+ {
+ if( !psz_filter || !*psz_filter )
+ {
+ config_PutPsz( p_aout, "audio-filter", "visual" );
+ }
+ else
+ {
+ if( strstr( psz_filter, "visual" ) == NULL )
+ {
+ psz_filter = realloc( psz_filter, strlen( psz_filter ) + 20 );
+ strcat( psz_filter, ",visual" );
+ }
+ config_PutPsz( p_aout, "audio-filter", psz_filter );
+ }
+ }
+
+ if( psz_mode && *psz_mode )
+ {
+ config_PutPsz( p_aout, "effect-list", psz_mode );
+ }
+
+ if( psz_filter ) free( psz_filter );
+
+ return VLC_SUCCESS;
+}