X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=include%2Fvlc%2Fmediacontrol.h;h=46da6173b80d1d976b3bafc6719bcf8c7f7db667;hb=fa1117e6e11da5d5e21bb5567635000ffbe5de37;hp=f506b6fb5e8d1a4fbde183f7d2cec0c9536fbfa0;hpb=f05d228de8d867731ce8ffff5146021c82725e0e;p=vlc diff --git a/include/vlc/mediacontrol.h b/include/vlc/mediacontrol.h index f506b6fb5e..46da6173b8 100644 --- a/include/vlc/mediacontrol.h +++ b/include/vlc/mediacontrol.h @@ -22,7 +22,7 @@ *****************************************************************************/ /** - * \defgroup mediacontrol MediaControl + * \defgroup mediacontrol MediaControl * This is the MediaControl API, * intended to provide a generic API to movie players. * * @{ @@ -37,115 +37,66 @@ extern "C" { # endif #if defined( WIN32 ) -#define WINDOWHANDLE HWND +#include +typedef HWND WINDOWHANDLE; #else -#define WINDOWHANDLE int +typedef int WINDOWHANDLE; #endif +#include #include -/** - * RGBPicture structure - * This generic structure holds a picture in an encoding specified by type. - */ -typedef struct { - int width; - int height; - long type; - vlc_int64_t date; - int size; - char *data; -} mediacontrol_RGBPicture; - -/** - * Playlist sequence - * A simple list of strings. - */ -typedef struct { - int size; - char **data; -} mediacontrol_PlaylistSeq; - -typedef struct { - int code; - char *message; -} mediacontrol_Exception; - -/** - * Exception codes - */ -#define mediacontrol_PositionKeyNotSupported 1 -#define mediacontrol_PositionOriginNotSupported 2 -#define mediacontrol_InvalidPosition 3 -#define mediacontrol_PlaylistException 4 -#define mediacontrol_InternalException 5 - /** * mediacontrol_Instance is an opaque structure, defined in - * mediacontrol_internal.h. API users do not have to mess with it. + * mediacontrol_internal.h. API users do not have to mess with it. */ typedef struct mediacontrol_Instance mediacontrol_Instance; -/** - * Possible player status - */ -enum mediacontrol_PlayerStatusList -{ - mediacontrol_PlayingStatus, mediacontrol_PauseStatus, - mediacontrol_ForwardStatus, mediacontrol_BackwardStatus, - mediacontrol_InitStatus, mediacontrol_EndStatus, - mediacontrol_UndefinedStatus -}; -typedef enum mediacontrol_PlayerStatusList mediacontrol_PlayerStatus; - -/** - * Stream information - * This structure allows to quickly get various informations about the stream. - */ -typedef struct { - mediacontrol_PlayerStatus streamstatus; - char *url; /* The URL of the current media stream */ - vlc_int64_t position; /* actual location in the stream (in ms) */ - vlc_int64_t length; /* total length of the stream (in ms) */ -} mediacontrol_StreamInformation; - /************************************************************************** * Helper functions ***************************************************************************/ -/** - * Allocate a RGBPicture structure. - * \param datasize: the size of the data - */ -mediacontrol_RGBPicture *mediacontrol_RGBPicture__alloc( int datasize ); - /** * Free a RGBPicture structure. * \param pic: the RGBPicture structure */ -void mediacontrol_RGBPicture__free( mediacontrol_RGBPicture *pic ); - -mediacontrol_RGBPicture * - _mediacontrol_createRGBPicture( int, int, long, vlc_int64_t l_date, - char *, int); +VLC_PUBLIC_API void mediacontrol_RGBPicture__free( mediacontrol_RGBPicture *pic ); -mediacontrol_PlaylistSeq *mediacontrol_PlaylistSeq__alloc( int size ); +VLC_PUBLIC_API void mediacontrol_PlaylistSeq__free( mediacontrol_PlaylistSeq *ps ); -void mediacontrol_PlaylistSeq__free( mediacontrol_PlaylistSeq *ps ); +/** + * Free a StreamInformation structure. + * \param pic: the StreamInformation structure + */ +VLC_PUBLIC_API void +mediacontrol_StreamInformation__free( mediacontrol_StreamInformation* p_si ); /** - * Initialize an exception structure. - * \param p_exception the exception to initialize. If NULL, a new exception will be created. + * Instanciate and initialize an exception structure. * \return the exception */ -mediacontrol_Exception * +VLC_PUBLIC_API mediacontrol_Exception * + mediacontrol_exception_create( void ); + +/** + * Initialize an existing exception structure. + * \param p_exception the exception to initialize. + */ +VLC_PUBLIC_API void mediacontrol_exception_init( mediacontrol_Exception *exception ); /** - * Free an exception structure. + * Clean up an existing exception structure after use. + * \param p_exception the exception to clean up. + */ +VLC_PUBLIC_API void +mediacontrol_exception_cleanup( mediacontrol_Exception *exception ); + +/** + * Free an exception structure created with mediacontrol_exception_create(). * \return the exception */ -void mediacontrol_exception_free(mediacontrol_Exception *exception); +VLC_PUBLIC_API void mediacontrol_exception_free(mediacontrol_Exception *exception); /***************************************************************************** * Core functions @@ -158,7 +109,7 @@ void mediacontrol_exception_free(mediacontrol_Exception *exception); * \param exception an initialized exception pointer * \return a mediacontrol_Instance */ -mediacontrol_Instance * +VLC_PUBLIC_API mediacontrol_Instance * mediacontrol_new( int argc, char **argv, mediacontrol_Exception *exception ); /** @@ -167,18 +118,26 @@ mediacontrol_new( int argc, char **argv, mediacontrol_Exception *exception ); * \param exception an initialized exception pointer * \return a mediacontrol_Instance */ -mediacontrol_Instance * +VLC_PUBLIC_API mediacontrol_Instance * mediacontrol_new_from_instance( libvlc_instance_t* p_instance, - mediacontrol_Exception *exception ); + mediacontrol_Exception *exception ); /** * Get the associated libvlc instance * \param self: the mediacontrol instance * \return a libvlc instance */ -libvlc_instance_t* +VLC_PUBLIC_API libvlc_instance_t* mediacontrol_get_libvlc_instance( mediacontrol_Instance* self ); +/** + * Get the associated libvlc_media_player + * \param self: the mediacontrol instance + * \return a libvlc_media_player_t instance + */ +VLC_PUBLIC_API libvlc_media_player_t* +mediacontrol_get_media_player( mediacontrol_Instance* self ); + /** * Get the current position * \param self the mediacontrol instance @@ -187,7 +146,7 @@ mediacontrol_get_libvlc_instance( mediacontrol_Instance* self ); * \param exception an initialized exception pointer * \return a mediacontrol_Position */ -mediacontrol_Position * mediacontrol_get_media_position( +VLC_PUBLIC_API mediacontrol_Position * mediacontrol_get_media_position( mediacontrol_Instance *self, const mediacontrol_PositionOrigin an_origin, const mediacontrol_PositionKey a_key, @@ -199,7 +158,7 @@ mediacontrol_Position * mediacontrol_get_media_position( * \param a_position a mediacontrol_Position * \param exception an initialized exception pointer */ -void mediacontrol_set_media_position( mediacontrol_Instance *self, +VLC_PUBLIC_API void mediacontrol_set_media_position( mediacontrol_Instance *self, const mediacontrol_Position *a_position, mediacontrol_Exception *exception ); @@ -209,80 +168,57 @@ void mediacontrol_set_media_position( mediacontrol_Instance *self, * \param a_position a mediacontrol_Position * \param exception an initialized exception pointer */ -void mediacontrol_start( mediacontrol_Instance *self, +VLC_PUBLIC_API void mediacontrol_start( mediacontrol_Instance *self, const mediacontrol_Position *a_position, mediacontrol_Exception *exception ); /** * Pause the movie at a given position * \param self the mediacontrol instance - * \param a_position a mediacontrol_Position (ignored for now) * \param exception an initialized exception pointer */ -void mediacontrol_pause( mediacontrol_Instance *self, - const mediacontrol_Position *a_position, +VLC_PUBLIC_API void mediacontrol_pause( mediacontrol_Instance *self, mediacontrol_Exception *exception ); /** * Resume the movie at a given position * \param self the mediacontrol instance - * \param a_position a mediacontrol_Position (ignored for now) * \param exception an initialized exception pointer */ -void mediacontrol_resume( mediacontrol_Instance *self, - const mediacontrol_Position *a_position, +VLC_PUBLIC_API void mediacontrol_resume( mediacontrol_Instance *self, mediacontrol_Exception *exception ); /** * Stop the movie at a given position * \param self the mediacontrol instance - * \param a_position a mediacontrol_Position (ignored for now) * \param exception an initialized exception pointer */ -void mediacontrol_stop( mediacontrol_Instance *self, - const mediacontrol_Position *a_position, +VLC_PUBLIC_API void mediacontrol_stop( mediacontrol_Instance *self, mediacontrol_Exception *exception ); /** * Exit the player * \param self the mediacontrol instance */ -void mediacontrol_exit( mediacontrol_Instance *self ); +VLC_PUBLIC_API void mediacontrol_exit( mediacontrol_Instance *self ); /** - * Add a new MRL to the playlist + * Set the MRL to be played. * \param self the mediacontrol instance * \param psz_file the MRL * \param exception an initialized exception pointer */ -void mediacontrol_playlist_add_item( mediacontrol_Instance *self, +VLC_PUBLIC_API void mediacontrol_set_mrl( mediacontrol_Instance *self, const char* psz_file, mediacontrol_Exception *exception ); -/** - * Clear the playlist - * \param self the mediacontrol instance - * \param exception an initialized exception pointer - */ -void mediacontrol_playlist_clear( mediacontrol_Instance *self, - mediacontrol_Exception *exception ); -/** - * Get a flattened view of the playlist - * \param self the mediacontrol instance - * \param exception an initialized exception pointer - * \return a list of strings - */ -mediacontrol_PlaylistSeq * - mediacontrol_playlist_get_list( mediacontrol_Instance *self, - mediacontrol_Exception *exception ); /** - * Play the next item + * Get the MRL to be played. * \param self the mediacontrol instance * \param exception an initialized exception pointer */ -void -mediacontrol_playlist_next_item( mediacontrol_Instance *self, - mediacontrol_Exception *exception ); +VLC_PUBLIC_API char * mediacontrol_get_mrl( mediacontrol_Instance *self, + mediacontrol_Exception *exception ); /***************************************************************************** * A/V functions @@ -294,22 +230,11 @@ mediacontrol_playlist_next_item( mediacontrol_Instance *self, * \param exception an initialized exception pointer * \return a RGBpicture */ -mediacontrol_RGBPicture * +VLC_PUBLIC_API mediacontrol_RGBPicture * mediacontrol_snapshot( mediacontrol_Instance *self, const mediacontrol_Position *a_position, mediacontrol_Exception *exception ); -/* Return a NULL terminated list */ -/** - * Get a list of all cached snapshots (unimplemented) - * \param self the mediacontrol instance - * \param exception an initialized exception pointer - * \return a NULL-terminated list of RGBpicture - */ -mediacontrol_RGBPicture ** - mediacontrol_all_snapshots( mediacontrol_Instance *self, - mediacontrol_Exception *exception ); - /** * Displays the message string, between "begin" and "end" positions. * \param self the mediacontrol instance @@ -318,7 +243,7 @@ mediacontrol_RGBPicture ** * \param end the end position * \param exception an initialized exception pointer */ -void mediacontrol_display_text( mediacontrol_Instance *self, +VLC_PUBLIC_API void mediacontrol_display_text( mediacontrol_Instance *self, const char *message, const mediacontrol_Position *begin, const mediacontrol_Position *end, @@ -331,7 +256,7 @@ void mediacontrol_display_text( mediacontrol_Instance *self, * \param exception an initialized exception pointer * \return a mediacontrol_StreamInformation */ -mediacontrol_StreamInformation * +VLC_PUBLIC_API mediacontrol_StreamInformation * mediacontrol_get_stream_information( mediacontrol_Instance *self, mediacontrol_PositionKey a_key, mediacontrol_Exception *exception ); @@ -342,7 +267,7 @@ mediacontrol_StreamInformation * * \param exception an initialized exception pointer * \return the volume */ -unsigned short +VLC_PUBLIC_API unsigned short mediacontrol_sound_get_volume( mediacontrol_Instance *self, mediacontrol_Exception *exception ); /** @@ -351,7 +276,7 @@ unsigned short * \param volume the volume (normalized in [0..100]) * \param exception an initialized exception pointer */ -void mediacontrol_sound_set_volume( mediacontrol_Instance *self, +VLC_PUBLIC_API void mediacontrol_sound_set_volume( mediacontrol_Instance *self, const unsigned short volume, mediacontrol_Exception *exception ); @@ -361,7 +286,7 @@ void mediacontrol_sound_set_volume( mediacontrol_Instance *self, * \param visual_id the Xid or HWND, depending on the platform * \param exception an initialized exception pointer */ -vlc_bool_t mediacontrol_set_visual( mediacontrol_Instance *self, +VLC_PUBLIC_API int mediacontrol_set_visual( mediacontrol_Instance *self, WINDOWHANDLE visual_id, mediacontrol_Exception *exception ); @@ -371,8 +296,8 @@ vlc_bool_t mediacontrol_set_visual( mediacontrol_Instance *self, * \param exception an initialized exception pointer * \return the rate */ -int mediacontrol_get_rate( mediacontrol_Instance *self, - mediacontrol_Exception *exception ); +VLC_PUBLIC_API int mediacontrol_get_rate( mediacontrol_Instance *self, + mediacontrol_Exception *exception ); /** * Set the playing rate, in percent @@ -380,9 +305,9 @@ int mediacontrol_get_rate( mediacontrol_Instance *self, * \param rate the desired rate * \param exception an initialized exception pointer */ -void mediacontrol_set_rate( mediacontrol_Instance *self, - const int rate, - mediacontrol_Exception *exception ); +VLC_PUBLIC_API void mediacontrol_set_rate( mediacontrol_Instance *self, + const int rate, + mediacontrol_Exception *exception ); /** * Get current fullscreen status @@ -390,8 +315,8 @@ void mediacontrol_set_rate( mediacontrol_Instance *self, * \param exception an initialized exception pointer * \return the fullscreen status */ -int mediacontrol_get_fullscreen( mediacontrol_Instance *self, - mediacontrol_Exception *exception ); +VLC_PUBLIC_API int mediacontrol_get_fullscreen( mediacontrol_Instance *self, + mediacontrol_Exception *exception ); /** * Set fullscreen status @@ -399,9 +324,9 @@ int mediacontrol_get_fullscreen( mediacontrol_Instance *self, * \param b_fullscreen the desired status * \param exception an initialized exception pointer */ -void mediacontrol_set_fullscreen( mediacontrol_Instance *self, - const int b_fullscreen, - mediacontrol_Exception *exception ); +VLC_PUBLIC_API void mediacontrol_set_fullscreen( mediacontrol_Instance *self, + const int b_fullscreen, + mediacontrol_Exception *exception ); # ifdef __cplusplus }