X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fcontrol%2Fmediacontrol_core.c;h=8ed878b9574ee810beb86be543737112bdbbe188;hb=e16a922a514fa4d5adcb2bbd4b17ef6b1791035e;hp=eff3ef6084b67864fb0701c27ea760201dae1814;hpb=8ee62bb6296e3c1c634eddcab64a5b7391d9796e;p=vlc diff --git a/src/control/mediacontrol_core.c b/src/control/mediacontrol_core.c index eff3ef6084..8ed878b957 100644 --- a/src/control/mediacontrol_core.c +++ b/src/control/mediacontrol_core.c @@ -25,10 +25,11 @@ # include "config.h" #endif -#include +#include "mediacontrol_internal.h" #include #include +#include #include #include @@ -36,7 +37,6 @@ #include #include #include -#include "mediacontrol_internal.h" #include /* malloc(), free() */ #include @@ -123,7 +123,7 @@ mediacontrol_get_media_position( mediacontrol_Instance *self, { mediacontrol_Position* retval = NULL; libvlc_exception_t ex; - vlc_int64_t pos; + int64_t pos; mediacontrol_exception_init( exception ); libvlc_exception_init( &ex ); @@ -134,6 +134,7 @@ mediacontrol_get_media_position( mediacontrol_Instance *self, if( an_origin != mediacontrol_AbsolutePosition ) { + free( retval ); /* Relative or ModuloPosition make no sense */ RAISE_NULL( mediacontrol_PositionOriginNotSupported, "Only absolute position is valid." ); @@ -163,7 +164,7 @@ mediacontrol_set_media_position( mediacontrol_Instance *self, mediacontrol_Exception *exception ) { libvlc_exception_t ex; - vlc_int64_t i_pos; + int64_t i_pos; libvlc_exception_init( &ex ); mediacontrol_exception_init( exception ); @@ -222,7 +223,7 @@ mediacontrol_start( mediacontrol_Instance *self, /* A start position was specified. Add it to media options */ psz_from = ( char * )malloc( 20 * sizeof( char ) ); i_from = private_mediacontrol_position2microsecond( self->p_media_player, a_position ) / 1000000; - snprintf( psz_from, 20, "start-time=%ld", i_from ); + snprintf( psz_from, 20, "start-time=%"PRId64, i_from ); libvlc_media_add_option( p_media, psz_from, &ex ); HANDLE_LIBVLC_EXCEPTION_VOID( &ex ); } @@ -356,25 +357,40 @@ mediacontrol_get_stream_information( mediacontrol_Instance *self, else { libvlc_state_t state; - state = libvlc_media_player_get_state( self->p_media_player, &ex ); HANDLE_LIBVLC_EXCEPTION_NULL( &ex ); switch( state ) { - case libvlc_Playing : - retval->streamstatus = mediacontrol_PlayingStatus; - break; - case libvlc_Paused : - retval->streamstatus = mediacontrol_PauseStatus; + case libvlc_NothingSpecial: + retval->streamstatus = mediacontrol_UndefinedStatus; break; case libvlc_Opening : - case libvlc_Buffering: retval->streamstatus = mediacontrol_InitStatus; break; + case libvlc_Buffering: + retval->streamstatus = mediacontrol_BufferingStatus; + break; + case libvlc_Playing: + retval->streamstatus = mediacontrol_PlayingStatus; + break; + case libvlc_Paused: + retval->streamstatus = mediacontrol_PauseStatus; + break; case libvlc_Stopped: + retval->streamstatus = mediacontrol_StopStatus; + break; + case libvlc_Forward: + retval->streamstatus = mediacontrol_ForwardStatus; + break; + case libvlc_Backward: + retval->streamstatus = mediacontrol_BackwardStatus; + break; case libvlc_Ended: retval->streamstatus = mediacontrol_EndStatus; break; + case libvlc_Error: + retval->streamstatus = mediacontrol_ErrorStatus; + break; default : retval->streamstatus = mediacontrol_UndefinedStatus; break;