# include "config.h"
#endif
-#include <vlc/vlc.h>
+#include <vlc_common.h>
#include <vlc_plugin.h>
#include <vlc_interface.h>
#include <vlc_vout.h>
static const char *const button_list_text[] =
{ N_("Left"), N_("Middle"), N_("Right") };
-vlc_module_begin();
- set_shortname( N_("Gestures"));
- set_category( CAT_INTERFACE );
- set_subcategory( SUBCAT_INTERFACE_CONTROL );
+vlc_module_begin ()
+ set_shortname( N_("Gestures"))
+ set_category( CAT_INTERFACE )
+ set_subcategory( SUBCAT_INTERFACE_CONTROL )
add_integer( "gestures-threshold", 30, NULL,
THRESHOLD_TEXT, THRESHOLD_LONGTEXT, true );
add_string( "gestures-button", "right", NULL,
BUTTON_TEXT, BUTTON_LONGTEXT, false );
change_string_list( button_list, button_list_text, 0 );
- set_description( N_("Mouse gestures control interface") );
+ set_description( N_("Mouse gestures control interface") )
- set_capability( "interface", 0 );
- set_callbacks( Open, Close );
-vlc_module_end();
+ set_capability( "interface", 0 )
+ set_callbacks( Open, Close )
+vlc_module_end ()
/*****************************************************************************
* OpenIntf: initialize interface
*****************************************************************************/
static input_thread_t * input_from_playlist ( playlist_t *p_playlist )
{
- input_thread_t * p_input;
-
- PL_LOCK;
- p_input = p_playlist->p_input;
- if( p_input )
- vlc_object_yield( p_input );
- PL_UNLOCK;
-
- return p_input;
+ return playlist_CurrentInput( p_playlist );
}
/*****************************************************************************
static void RunIntf( intf_thread_t *p_intf )
{
playlist_t * p_playlist = NULL;
+ int canc = vlc_savecancel();
vlc_mutex_lock( &p_intf->change_lock );
p_intf->p_sys->p_vout = NULL;
msg_Dbg( p_intf, "interface thread initialized" );
/* Main loop */
- while( !intf_ShouldDie( p_intf ) )
+ while( vlc_object_alive( p_intf ) )
{
vlc_mutex_lock( &p_intf->change_lock );
case GESTURE(RIGHT,LEFT,NONE,NONE):
{
input_thread_t * p_input;
- p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST,
- FIND_ANYWHERE );
-
- if( !p_playlist )
- break;
+ p_playlist = pl_Hold( p_intf );
p_input = input_from_playlist( p_playlist );
vlc_object_release( p_playlist );
}
break;
case GESTURE(LEFT,DOWN,NONE,NONE):
- p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST,
- FIND_ANYWHERE );
- if( p_playlist == NULL )
- {
- break;
- }
+ p_playlist = pl_Hold( p_intf );
playlist_Prev( p_playlist );
vlc_object_release( p_playlist );
break;
case GESTURE(RIGHT,DOWN,NONE,NONE):
- p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST,
- FIND_ANYWHERE );
- if( p_playlist == NULL )
- {
- break;
- }
+ p_playlist = pl_Hold( p_intf );
playlist_Next( p_playlist );
vlc_object_release( p_playlist );
vlc_value_t val, list, list2;
int i_count, i;
- p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST,
- FIND_ANYWHERE );
-
- if( !p_playlist )
- break;
+ p_playlist = pl_Hold( p_intf );
p_input = input_from_playlist( p_playlist );
vlc_value_t val, list, list2;
int i_count, i;
- p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST,
- FIND_ANYWHERE );
-
- if( !p_playlist )
- break;
+ p_playlist = pl_Hold( p_intf );
p_input = input_from_playlist( p_playlist );
vlc_object_release( p_playlist );
/*
* video output
*/
- if( p_intf->p_sys->p_vout && p_intf->p_sys->p_vout->b_die )
+ if( p_intf->p_sys->p_vout && !vlc_object_alive (p_intf->p_sys->p_vout) )
{
var_DelCallback( p_intf->p_sys->p_vout, "mouse-moved",
MouseEvent, p_intf );
}
EndThread( p_intf );
+ vlc_restorecancel( canc );
}
/*****************************************************************************
{
char *psz_button;
/* we might need some locking here */
- if( !intf_ShouldDie( p_intf ) )
+ if( vlc_object_alive( p_intf ) )
{
/* p_intf->change_lock locking strategy:
* - Every access to p_intf->p_sys are locked threw p_intf->change_lock
{
p_intf->p_sys->i_button_mask = 4;
}
+ free( psz_button );
p_intf->p_sys->i_pattern = 0;
p_intf->p_sys->i_num_gestures = 0;