# include "config.h"
#endif
-#include <vlc/vlc.h>
+#include <vlc_common.h>
#include <vlc_plugin.h>
#include <vlc_input.h>
#include <vlc_interface.h>
#include <dbus/dbus.h>
#define PM_SERVICE "org.freedesktop.PowerManagement"
-#define PM_PATH "/org/freedesktop/PowerManagement/Inhibit"
+#define PM_PATH "/org/freedesktop/PowerManagement/Inhibit"
#define PM_INTERFACE "org.freedesktop.PowerManagement.Inhibit"
/*****************************************************************************
* Module descriptor
*****************************************************************************/
vlc_module_begin();
- set_description( _("Power Management Inhibitor") );
+ set_description( N_("Power Management Inhibitor") );
set_capability( "interface", 0 );
set_callbacks( Activate, Deactivate );
vlc_module_end();
intf_thread_t *p_intf = (intf_thread_t*)p_this;
DBusError error;
-
p_intf->pf_run = Run;
-
p_intf->p_sys = (intf_sys_t *) calloc( 1, sizeof( intf_sys_t ) );
-
if( !p_intf->p_sys )
return VLC_ENOMEM;
DBusMessage *p_msg;
DBusMessageIter args;
DBusMessage *p_reply;
- DBusError error;
- dbus_error_init( &error );
dbus_uint32_t i_cookie;
p_conn = p_intf->p_sys->p_conn;
dbus_message_iter_init_append( p_msg, &args );
char *psz_app = strdup( PACKAGE );
- if( !dbus_message_iter_append_basic( &args, DBUS_TYPE_STRING, &psz_app ) )
+ if( !psz_app ||
+ !dbus_message_iter_append_basic( &args, DBUS_TYPE_STRING, &psz_app ) )
{
free( psz_app );
dbus_message_unref( p_msg );
free( psz_inhibit_reason );
p_reply = dbus_connection_send_with_reply_and_block( p_conn, p_msg,
- 50, &error ); /* blocks 50ms maximum */
-
+ 50, NULL ); /* blocks 50ms maximum */
dbus_message_unref( p_msg );
if( p_reply == NULL )
{ /* g-p-m is not active, or too slow. Better luck next time? */
}
/* extract the cookie from the reply */
- if( dbus_message_get_args( p_reply, &error,
+ if( dbus_message_get_args( p_reply, NULL,
DBUS_TYPE_UINT32, &i_cookie,
DBUS_TYPE_INVALID ) == FALSE )
{
DBusConnection *p_conn;
DBusMessage *p_msg;
DBusMessageIter args;
- DBusError error;
- dbus_error_init( &error );
dbus_uint32_t i_cookie;
p_conn = p_intf->p_sys->p_conn;
*****************************************************************************/
static void Run( intf_thread_t *p_intf )
{
- vlc_object_lock( p_intf );
- for(;;)
+ for( ;; )
{
input_thread_t *p_input;
/* Check playing state every 30 seconds */
- if( vlc_object_timedwait( p_intf, mdate() + 30000000 ) < 0 )
- break;
+ msleep( 30 * CLOCK_FREQ );
p_input = vlc_object_find( p_intf, VLC_OBJECT_INPUT, FIND_ANYWHERE );
if( p_input )
{
- if( PLAYING_S == p_input->i_state && !p_intf->p_sys->i_cookie )
+ int i_state = p_input->i_state;
+ vlc_object_release( p_input );
+
+ if( PLAYING_S == i_state && !p_intf->p_sys->i_cookie )
{
if( !Inhibit( p_intf ) )
- {
- vlc_object_release( p_input );
- goto end;
- }
+ break;
}
else if( p_intf->p_sys->i_cookie )
{
if( !UnInhibit( p_intf ) )
- {
- vlc_object_release( p_input );
- goto end;
- }
+ break;
}
- vlc_object_release( p_input );
}
else if( p_intf->p_sys->i_cookie )
{
if( !UnInhibit( p_intf ) )
- goto end;
+ break;
}
}
-
-end:
- vlc_object_unlock( p_intf );
}