Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc
Commits
9e6f5af4
Commit
9e6f5af4
authored
May 25, 2009
by
Pierre d'Herbemont
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
libvlc: Split public headers by object and layers.
parent
5e857623
Changes
12
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
1878 additions
and
1721 deletions
+1878
-1721
include/vlc/libvlc.h
include/vlc/libvlc.h
+41
-1260
include/vlc/libvlc_events.h
include/vlc/libvlc_events.h
+4
-17
include/vlc/libvlc_media.h
include/vlc/libvlc_media.h
+307
-0
include/vlc/libvlc_media_discoverer.h
include/vlc/libvlc_media_discoverer.h
+106
-0
include/vlc/libvlc_media_library.h
include/vlc/libvlc_media_library.h
+106
-0
include/vlc/libvlc_media_list.h
include/vlc/libvlc_media_list.h
+3
-253
include/vlc/libvlc_media_list_player.h
include/vlc/libvlc_media_list_player.h
+175
-0
include/vlc/libvlc_media_list_view.h
include/vlc/libvlc_media_list_view.h
+160
-0
include/vlc/libvlc_media_player.h
include/vlc/libvlc_media_player.h
+960
-0
include/vlc/libvlc_structures.h
include/vlc/libvlc_structures.h
+0
-188
include/vlc/vlc.h
include/vlc/vlc.h
+7
-1
src/Makefile.am
src/Makefile.am
+9
-2
No files found.
include/vlc/libvlc.h
View file @
9e6f5af4
...
...
@@ -58,6 +58,8 @@
extern
"C"
{
# endif
#include <vlc/libvlc_structures.h>
/*****************************************************************************
* Exception handling
*****************************************************************************/
...
...
@@ -233,1293 +235,72 @@ VLC_PUBLIC_API void libvlc_free( void *ptr );
/** @}*/
/*****************************************************************************
*
media
*
Event handling
*****************************************************************************/
/** \defgroup libvlc_media libvlc_media
* \ingroup libvlc
* LibVLC Media
* @{
*/
/**
* Create a media with the given MRL.
*
* \param p_instance the instance
* \param psz_mrl the MRL to read
* \param p_e an initialized exception pointer
* \return the newly created media
*/
VLC_PUBLIC_API
libvlc_media_t
*
libvlc_media_new
(
libvlc_instance_t
*
p_instance
,
const
char
*
psz_mrl
,
libvlc_exception_t
*
p_e
);
/**
* Create a media as an empty node with the passed name.
*
* \param p_instance the instance
* \param psz_name the name of the node
* \param p_e an initialized exception pointer
* \return the new empty media
*/
VLC_PUBLIC_API
libvlc_media_t
*
libvlc_media_new_as_node
(
libvlc_instance_t
*
p_instance
,
const
char
*
psz_name
,
libvlc_exception_t
*
p_e
);
/**
* Add an option to the media.
*
* This option will be used to determine how the media_player will
* read the media. This allows to use VLC's advanced
* reading/streaming options on a per-media basis.
*
* The options are detailed in vlc --long-help, for instance "--sout-all"
*
* \param p_instance the instance
* \param ppsz_options the options (as a string)
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_media_add_option
(
libvlc_media_t
*
p_md
,
const
char
*
ppsz_options
,
libvlc_exception_t
*
p_e
);
/**
* Add an option to the media from an untrusted source.
*
* This option will be used to determine how the media_player will
* read the media. This allows to use VLC's advanced
* reading/streaming options on a per-media basis.
*
* The options are detailed in vlc --long-help, for instance "--sout-all"
*
* \param p_instance the instance
* \param ppsz_options the options (as a string)
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_media_add_option_untrusted
(
libvlc_media_t
*
p_md
,
const
char
*
ppsz_options
,
libvlc_exception_t
*
p_e
);
/**
* Retain a reference to a media descriptor object (libvlc_media_t). Use
* libvlc_media_release() to decrement the reference count of a
* media descriptor object.
*
* \param p_meta_desc a media descriptor object.
*/
VLC_PUBLIC_API
void
libvlc_media_retain
(
libvlc_media_t
*
p_meta_desc
);
/**
* Decrement the reference count of a media descriptor object. If the
* reference count is 0, then libvlc_media_release() will release the
* media descriptor object. It will send out an libvlc_MediaFreed event
* to all listeners. If the media descriptor object has been released it
* should not be used again.
*
* \param p_meta_desc a media descriptor object.
*/
VLC_PUBLIC_API
void
libvlc_media_release
(
libvlc_media_t
*
p_meta_desc
);
/**
* Get the media resource locator (mrl) from a media descriptor object
*
* \param p_md a media descriptor object
* \param p_e an initialized exception object
* \return string with mrl of media descriptor object
*/
VLC_PUBLIC_API
char
*
libvlc_media_get_mrl
(
libvlc_media_t
*
p_md
,
libvlc_exception_t
*
p_e
);
/**
* Duplicate a media descriptor object.
*
* \param p_meta_desc a media descriptor object.
*/
VLC_PUBLIC_API
libvlc_media_t
*
libvlc_media_duplicate
(
libvlc_media_t
*
);
/**
* Read the meta of the media.
*
* \param p_meta_desc the media to read
* \param e_meta_desc the meta to read
* \param p_e an initialized exception pointer
* \return the media's meta
*/
VLC_PUBLIC_API
char
*
libvlc_media_get_meta
(
libvlc_media_t
*
p_meta_desc
,
libvlc_meta_t
e_meta
,
libvlc_exception_t
*
p_e
);
/**
* Get current state of media descriptor object. Possible media states
* are defined in libvlc_structures.c ( libvlc_NothingSpecial=0,
* libvlc_Opening, libvlc_Buffering, libvlc_Playing, libvlc_Paused,
* libvlc_Stopped, libvlc_Ended,
* libvlc_Error).
*
* @see libvlc_state_t
* \param p_meta_desc a media descriptor object
* \param p_e an initialized exception object
* \return state of media descriptor object
*/
VLC_PUBLIC_API
libvlc_state_t
libvlc_media_get_state
(
libvlc_media_t
*
p_meta_desc
,
libvlc_exception_t
*
p_e
);
/**
* Get subitems of media descriptor object. This will increment
* the reference count of supplied media descriptor object. Use
* libvlc_media_list_release() to decrement the reference counting.
*
* \param p_md media descriptor object
* \param p_e initalized exception object
* \return list of media descriptor subitems or NULL
*/
VLC_PUBLIC_API
libvlc_media_list_t
*
libvlc_media_subitems
(
libvlc_media_t
*
p_md
,
libvlc_exception_t
*
p_e
);
/**
* Get event manager from media descriptor object.
* NOTE: this function doesn't increment reference counting.
*
* \param p_md a media descriptor object
* \param p_e an initialized exception object
* \return event manager object
*/
VLC_PUBLIC_API
libvlc_event_manager_t
*
libvlc_media_event_manager
(
libvlc_media_t
*
p_md
,
libvlc_exception_t
*
p_e
);
/**
* Get duration of media descriptor object item.
*
* \param p_md media descriptor object
* \param p_e an initialized exception object
* \return duration of media item
*/
VLC_PUBLIC_API
libvlc_time_t
libvlc_media_get_duration
(
libvlc_media_t
*
p_md
,
libvlc_exception_t
*
p_e
);
/**
* Get preparsed status for media descriptor object.
*
* \param p_md media descriptor object
* \param p_e an initialized exception object
* \return true if media object has been preparsed otherwise it returns false
*/
VLC_PUBLIC_API
int
libvlc_media_is_preparsed
(
libvlc_media_t
*
p_md
,
libvlc_exception_t
*
p_e
);
/**
* Sets media descriptor's user_data. user_data is specialized data
* accessed by the host application, VLC.framework uses it as a pointer to
* an native object that references a libvlc_media_t pointer
*
* \param p_md media descriptor object
* \param p_new_user_data pointer to user data
* \param p_e an initialized exception object
*/
VLC_PUBLIC_API
void
libvlc_media_set_user_data
(
libvlc_media_t
*
p_md
,
void
*
p_new_user_data
,
libvlc_exception_t
*
p_e
);
/**
* Get media descriptor's user_data. user_data is specialized data
* accessed by the host application, VLC.framework uses it as a pointer to
* an native object that references a libvlc_media_t pointer
*
* \param p_md media descriptor object
* \param p_e an initialized exception object
*/
VLC_PUBLIC_API
void
*
libvlc_media_get_user_data
(
libvlc_media_t
*
p_md
,
libvlc_exception_t
*
p_e
);
/** @}*/
/*****************************************************************************
* Media Player
*****************************************************************************/
/** \defgroup libvlc_media_player libvlc_media_player
* \ingroup libvlc
* LibVLC Media Player, object that let you play a media
* in a custom drawable
/** \defgroup libvlc_event libvlc_event
* \ingroup libvlc_core
* LibVLC Events
* @{
*/
/**
* Create an empty Media Player object
*
* \param p_libvlc_instance the libvlc instance in which the Media Player
* should be created.
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
libvlc_media_player_t
*
libvlc_media_player_new
(
libvlc_instance_t
*
,
libvlc_exception_t
*
);
/**
* Create a Media Player object from a Media
*
* \param p_md the media. Afterwards the p_md can be safely
* destroyed.
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
libvlc_media_player_t
*
libvlc_media_player_new_from_media
(
libvlc_media_t
*
,
libvlc_exception_t
*
);
/**
* Release a media_player after use
* Decrement the reference count of a media player object. If the
* reference count is 0, then libvlc_media_player_release() will
* release the media player object. If the media player object
* has been released, then it should not be used again.
*
* \param p_mi the Media Player to free
*/
VLC_PUBLIC_API
void
libvlc_media_player_release
(
libvlc_media_player_t
*
);
/**
* Retain a reference to a media player object. Use
* libvlc_media_player_release() to decrement reference count.
*
* \param p_mi media player object
*/
VLC_PUBLIC_API
void
libvlc_media_player_retain
(
libvlc_media_player_t
*
);
/**
* Set the media that will be used by the media_player. If any,
* previous md will be released.
*
* \param p_mi the Media Player
* \param p_md the Media. Afterwards the p_md can be safely
* destroyed.
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_media_player_set_media
(
libvlc_media_player_t
*
,
libvlc_media_t
*
,
libvlc_exception_t
*
);
/**
* Get the media used by the media_player.
*
* \param p_mi the Media Player
* \param p_e an initialized exception pointer
* \return the media associated with p_mi, or NULL if no
* media is associated
*/
VLC_PUBLIC_API
libvlc_media_t
*
libvlc_media_player_get_media
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Get the Event Manager from which the media player send event.
*
* \param p_mi the Media Player
* \param p_e an initialized exception pointer
* \return the event manager associated with p_mi
*/
VLC_PUBLIC_API
libvlc_event_manager_t
*
libvlc_media_player_event_manager
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* is_playing
*
* \param p_mi the Media Player
* \param p_e an initialized exception pointer
* \return 1 if the media player is playing, 0 otherwise
*/
VLC_PUBLIC_API
int
libvlc_media_player_is_playing
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Play
*
* \param p_mi the Media Player
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_media_player_play
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Pause
*
* \param p_mi the Media Player
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_media_player_pause
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Stop
*
* \param p_mi the Media Player
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_media_player_stop
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Set the agl handler where the media player should render its video output.
*
* \param p_mi the Media Player
* \param drawable the agl handler
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_media_player_set_nsobject
(
libvlc_media_player_t
*
p_mi
,
void
*
drawable
,
libvlc_exception_t
*
p_e
);
/**
* Get the agl handler previously set with libvlc_media_player_set_agl().
*
* \return the agl handler or 0 if none where set
*/
VLC_PUBLIC_API
uint32_t
libvlc_media_player_get_nsobject
(
libvlc_media_player_t
*
p_mi
);
/**
* Set the agl handler where the media player should render its video output.
*
* \param p_mi the Media Player
* \param drawable the agl handler
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_media_player_set_agl
(
libvlc_media_player_t
*
p_mi
,
uint32_t
drawable
,
libvlc_exception_t
*
p_e
);
/**
* Get the agl handler previously set with libvlc_media_player_set_agl().
*
* \return the agl handler or 0 if none where set
*/
VLC_PUBLIC_API
uint32_t
libvlc_media_player_get_agl
(
libvlc_media_player_t
*
p_mi
);
/**
* Set an X Window System drawable where the media player should render its
* video output. If LibVLC was built without X11 output support, then this has
* no effects.
*
* The specified identifier must correspond to an existing Input/Output class
* X11 window. Pixmaps are <b>not</b> supported. The caller shall ensure that
* the X11 server is the same as the one the VLC instance has been configured
* with.
* If XVideo is <b>not</b> used, it is assumed that the drawable has the
* following properties in common with the default X11 screen: depth, scan line
* pad, black pixel. This is a bug.
*
* \param p_mi the Media Player
* \param drawable the ID of the X window
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_media_player_set_xwindow
(
libvlc_media_player_t
*
p_mi
,
uint32_t
drawable
,
libvlc_exception_t
*
p_e
);
/**
* Get the X Window System window identifier previously set with
* libvlc_media_player_set_xwindow(). Note that this will return the identifier
* even if VLC is not currently using it (for instance if it is playing an
* audio-only input).
*
* \return an X window ID, or 0 if none where set.
*/
VLC_PUBLIC_API
uint32_t
libvlc_media_player_get_xwindow
(
libvlc_media_player_t
*
p_mi
);
/**
* Set a Win32/Win64 API window handle (HWND) where the media player should
* render its video output. If LibVLC was built without Win32/Win64 API output
* support, then this has no effects.
*
* \param p_mi the Media Player
* \param drawable windows handle of the drawable
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_media_player_set_hwnd
(
libvlc_media_player_t
*
p_mi
,
void
*
drawable
,
libvlc_exception_t
*
p_e
);
/**
* Get the Windows API window handle (HWND) previously set with
* libvlc_media_player_set_hwnd(). The handle will be returned even if LibVLC
* is not currently outputting any video to it.
*
* \return a window handle or NULL if there are none.
*/
VLC_PUBLIC_API
void
*
libvlc_media_player_get_hwnd
(
libvlc_media_player_t
*
p_mi
);
/** \bug This might go away ... to be replaced by a broader system */
/**
* Get the current movie length (in ms).
*
* \param p_mi the Media Player
* \param p_e an initialized exception pointer
* \return the movie length (in ms).
*/
VLC_PUBLIC_API
libvlc_time_t
libvlc_media_player_get_length
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Get the current movie time (in ms).
*
* \param p_mi the Media Player
* \param p_e an initialized exception pointer
* \return the movie time (in ms).
*/
VLC_PUBLIC_API
libvlc_time_t
libvlc_media_player_get_time
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Set the movie time (in ms).
*
* \param p_mi the Media Player
* \param the movie time (in ms).
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_media_player_set_time
(
libvlc_media_player_t
*
,
libvlc_time_t
,
libvlc_exception_t
*
);
/**
* Get movie position.
*
* \param p_mi the Media Player
* \param p_e an initialized exception pointer
* \return movie position
*/
VLC_PUBLIC_API
float
libvlc_media_player_get_position
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Set movie position.
*
* \param p_mi the Media Player
* \param p_e an initialized exception pointer
* \return movie position
*/
VLC_PUBLIC_API
void
libvlc_media_player_set_position
(
libvlc_media_player_t
*
,
float
,
libvlc_exception_t
*
);
/**
* Set movie chapter
*
* \param p_mi the Media Player
* \param i_chapter chapter number to play
* \param p_e an initialized exception pointer
* Event manager that belongs to a libvlc object, and from whom events can
* be received.
*/
VLC_PUBLIC_API
void
libvlc_media_player_set_chapter
(
libvlc_media_player_t
*
,
int
,
libvlc_exception_t
*
);
/**
* Get movie chapter
*
* \param p_mi the Media Player
* \param p_e an initialized exception pointer
* \return chapter number currently playing
*/
VLC_PUBLIC_API
int
libvlc_media_player_get_chapter
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
typedef
struct
libvlc_event_manager_t
libvlc_event_manager_t
;
typedef
struct
libvlc_event_t
libvlc_event_t
;
typedef
enum
libvlc_event_type_t
libvlc_event_type_t
;
/**
* Get movie chapter count
*
* \param p_mi the Media Player
* \param p_e an initialized exception pointer
* \return number of chapters in movie
* Callback function notification
* \param p_event the event triggering the callback
*/
VLC_PUBLIC_API
int
libvlc_media_player_get_chapter_count
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
VLC_PUBLIC_API
int
libvlc_media_player_will_play
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Get title chapter count
*
* \param p_mi the Media Player
* \param i_title title
* \param p_e an initialized exception pointer
* \return number of chapters in title
*/
VLC_PUBLIC_API
int
libvlc_media_player_get_chapter_count_for_title
(
libvlc_media_player_t
*
,
int
,
libvlc_exception_t
*
);
typedef
void
(
*
libvlc_callback_t
)(
const
libvlc_event_t
*
,
void
*
);
/**
*
Set movie title
*
Register for an event notification.
*
* \param p_mi the Media Player
* \param i_title title number to play
* \param p_event_manager the event manager to which you want to attach to.
* Generally it is obtained by vlc_my_object_event_manager() where
* my_object is the object you want to listen to.
* \param i_event_type the desired event to which we want to listen
* \param f_callback the function to call when i_event_type occurs
* \param user_data user provided data to carry with the event
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_media_player_set_title
(
libvlc_media_player_t
*
,
int
,
libvlc_exception_t
*
);
VLC_PUBLIC_API
void
libvlc_event_attach
(
libvlc_event_manager_t
*
p_event_manager
,
libvlc_event_type_t
i_event_type
,
libvlc_callback_t
f_callback
,
void
*
user_data
,
libvlc_exception_t
*
p_e
);
/**
*
Get movie title
*
Unregister an event notification.
*
* \param p_mi the Media Player
* \param p_event_manager the event manager
* \param i_event_type the desired event to which we want to unregister
* \param f_callback the function to call when i_event_type occurs
* \param p_user_data user provided data to carry with the event
* \param p_e an initialized exception pointer
* \return title number currently playing
*/
VLC_PUBLIC_API
int
libvlc_media_player_get_title
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
VLC_PUBLIC_API
void
libvlc_event_detach
(
libvlc_event_manager_t
*
p_event_manager
,
libvlc_event_type_t
i_event_type
,
libvlc_callback_t
f_callback
,
void
*
p_user_data
,
libvlc_exception_t
*
p_e
);
/**
* Get
movie title count
* Get
an event's type name.
*
* \param p_mi the Media Player
* \param p_e an initialized exception pointer
* \return title number count
* \param i_event_type the desired event
*/
VLC_PUBLIC_API
int
libvlc_media_player_get_title_count
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Set previous chapter
*
* \param p_mi the Media Player
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_media_player_previous_chapter
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Set next chapter
*
* \param p_mi the Media Player
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_media_player_next_chapter
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Get movie play rate
*
* \param p_mi the Media Player
* \param p_e an initialized exception pointer
* \return movie play rate
*/
VLC_PUBLIC_API
float
libvlc_media_player_get_rate
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Set movie play rate
*
* \param p_mi the Media Player
* \param movie play rate to set
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_media_player_set_rate
(
libvlc_media_player_t
*
,
float
,
libvlc_exception_t
*
);
/**
* Get current movie state
*
* \param p_mi the Media Player
* \param p_e an initialized exception pointer
* \return current movie state as libvlc_state_t
*/
VLC_PUBLIC_API
libvlc_state_t
libvlc_media_player_get_state
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Get movie fps rate
*
* \param p_mi the Media Player
* \param p_e an initialized exception pointer
* \return frames per second (fps) for this playing movie
*/
VLC_PUBLIC_API
float
libvlc_media_player_get_fps
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/** end bug */
/**
* Does this media player have a video output?
*
* \param p_md the media player
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
int
libvlc_media_player_has_vout
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Is this media player seekable?
*
* \param p_input the input
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
int
libvlc_media_player_is_seekable
(
libvlc_media_player_t
*
p_mi
,
libvlc_exception_t
*
p_e
);
/**
* Can this media player be paused?
*
* \param p_input the input
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
int
libvlc_media_player_can_pause
(
libvlc_media_player_t
*
p_mi
,
libvlc_exception_t
*
p_e
);
/**
* Release (free) libvlc_track_description_t
*
* \param p_track_description the structure to release
*/
VLC_PUBLIC_API
void
libvlc_track_description_release
(
libvlc_track_description_t
*
p_track_description
);
/** \defgroup libvlc_video libvlc_video
* \ingroup libvlc_media_player
* LibVLC Video handling
* @{
*/
/**
* Toggle fullscreen status on video output.
*
* \param p_mediaplayer the media player
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_toggle_fullscreen
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Enable or disable fullscreen on a video output.
*
* \param p_mediaplayer the media player
* \param b_fullscreen boolean for fullscreen status
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_set_fullscreen
(
libvlc_media_player_t
*
,
int
,
libvlc_exception_t
*
);
/**
* Get current fullscreen status.
*
* \param p_mediaplayer the media player
* \param p_e an initialized exception pointer
* \return the fullscreen status (boolean)
*/
VLC_PUBLIC_API
int
libvlc_get_fullscreen
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Get current video height.
*
* \param p_mediaplayer the media player
* \param p_e an initialized exception pointer
* \return the video height
*/
VLC_PUBLIC_API
int
libvlc_video_get_height
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Get current video width.
*
* \param p_mediaplayer the media player
* \param p_e an initialized exception pointer
* \return the video width
*/
VLC_PUBLIC_API
int
libvlc_video_get_width
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Get the current video scaling factor.
* See also libvlc_video_set_scale().
*
* \param p_mediaplayer the media player
* \return the currently configured zoom factor, or 0. if the video is set
* to fit to the output window/drawable automatically.
*/
VLC_PUBLIC_API
float
libvlc_video_get_scale
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
p_e
);
/**
* Set the video scaling factor. That is the ratio of the number of pixels on
* screen to the number of pixels in the original decoded video in each
* dimension. Zero is a special value; it will adjust the video to the output
* window/drawable (in windowed mode) or the entire screen.
*
* Note that not all video outputs support scaling.
*
* \param p_mediaplayer the media player
* \param i_factor the scaling factor, or zero
*/
VLC_PUBLIC_API
void
libvlc_video_set_scale
(
libvlc_media_player_t
*
,
float
,
libvlc_exception_t
*
p_e
);
/**
* Get current video aspect ratio.
*
* \param p_mediaplayer the media player
* \param p_e an initialized exception pointer
* \return the video aspect ratio
*/
VLC_PUBLIC_API
char
*
libvlc_video_get_aspect_ratio
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Set new video aspect ratio.
*
* \param p_mediaplayer the media player
* \param psz_aspect new video aspect-ratio
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_video_set_aspect_ratio
(
libvlc_media_player_t
*
,
char
*
,
libvlc_exception_t
*
);
/**
* Get current video subtitle.
*
* \param p_mediaplayer the media player
* \param p_e an initialized exception pointer
* \return the video subtitle selected
*/
VLC_PUBLIC_API
int
libvlc_video_get_spu
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Get the number of available video subtitles.
*
* \param p_mediaplayer the media player
* \param p_e an initialized exception pointer
* \return the number of available video subtitles
*/
VLC_PUBLIC_API
int
libvlc_video_get_spu_count
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Get the description of available video subtitles.
*
* \param p_mediaplayer the media player
* \param p_e an initialized exception pointer
* \return list containing description of available video subtitles
*/
VLC_PUBLIC_API
libvlc_track_description_t
*
libvlc_video_get_spu_description
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Set new video subtitle.
*
* \param p_mediaplayer the media player
* \param i_spu new video subtitle to select
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_video_set_spu
(
libvlc_media_player_t
*
,
int
,
libvlc_exception_t
*
);
/**
* Set new video subtitle file.
*
* \param p_mediaplayer the media player
* \param psz_subtitle new video subtitle file
* \param p_e an initialized exception pointer
* \return the success status (boolean)
*/
VLC_PUBLIC_API
int
libvlc_video_set_subtitle_file
(
libvlc_media_player_t
*
,
char
*
,
libvlc_exception_t
*
);
/**
* Get the description of available titles.
*
* \param p_mediaplayer the media player
* \param p_e an initialized exception pointer
* \return list containing description of available titles
*/
VLC_PUBLIC_API
libvlc_track_description_t
*
libvlc_video_get_title_description
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Get the description of available chapters for specific title.
*
* \param p_mediaplayer the media player
* \param i_title selected title
* \param p_e an initialized exception pointer
* \return list containing description of available chapter for title i_title
*/
VLC_PUBLIC_API
libvlc_track_description_t
*
libvlc_video_get_chapter_description
(
libvlc_media_player_t
*
,
int
,
libvlc_exception_t
*
);
/**
* Get current crop filter geometry.
*
* \param p_mediaplayer the media player
* \param p_e an initialized exception pointer
* \return the crop filter geometry
*/
VLC_PUBLIC_API
char
*
libvlc_video_get_crop_geometry
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Set new crop filter geometry.
*
* \param p_mediaplayer the media player
* \param psz_geometry new crop filter geometry
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_video_set_crop_geometry
(
libvlc_media_player_t
*
,
char
*
,
libvlc_exception_t
*
);
/**
* Toggle teletext transparent status on video output.
*
* \param p_mediaplayer the media player
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_toggle_teletext
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Get current teletext page requested.
*
* \param p_mediaplayer the media player
* \param p_e an initialized exception pointer
* \return the current teletext page requested.
*/
VLC_PUBLIC_API
int
libvlc_video_get_teletext
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Set new teletext page to retrieve.
*
* \param p_mediaplayer the media player
* \param i_page teletex page number requested
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_video_set_teletext
(
libvlc_media_player_t
*
,
int
,
libvlc_exception_t
*
);
/**
* Get number of available video tracks.
*
* \param p_mi media player
* \param p_e an initialized exception
* \return the number of available video tracks (int)
*/
VLC_PUBLIC_API
int
libvlc_video_get_track_count
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Get the description of available video tracks.
*
* \param p_mi media player
* \param p_e an initialized exception
* \return list with description of available video tracks
*/
VLC_PUBLIC_API
libvlc_track_description_t
*
libvlc_video_get_track_description
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Get current video track.
*
* \param p_mi media player
* \param p_e an initialized exception pointer
* \return the video track (int)
*/
VLC_PUBLIC_API
int
libvlc_video_get_track
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Set video track.
*
* \param p_mi media player
* \param i_track the track (int)
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_video_set_track
(
libvlc_media_player_t
*
,
int
,
libvlc_exception_t
*
);
/**
* Take a snapshot of the current video window.
*
* If i_width AND i_height is 0, original size is used.
* If i_width XOR i_height is 0, original aspect-ratio is preserved.
*
* \param p_mi media player instance
* \param psz_filepath the path where to save the screenshot to
* \param i_width the snapshot's width
* \param i_height the snapshot's height
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_video_take_snapshot
(
libvlc_media_player_t
*
,
const
char
*
,
unsigned
int
,
unsigned
int
,
libvlc_exception_t
*
);
/** @} video */
/** \defgroup libvlc_audio libvlc_audio
* \ingroup libvlc_media_player
* LibVLC Audio handling
* @{
*/
/**
* Audio device types
*/
typedef
enum
libvlc_audio_output_device_types_t
{
libvlc_AudioOutputDevice_Error
=
-
1
,
libvlc_AudioOutputDevice_Mono
=
1
,
libvlc_AudioOutputDevice_Stereo
=
2
,
libvlc_AudioOutputDevice_2F2R
=
4
,
libvlc_AudioOutputDevice_3F2R
=
5
,
libvlc_AudioOutputDevice_5_1
=
6
,
libvlc_AudioOutputDevice_6_1
=
7
,
libvlc_AudioOutputDevice_7_1
=
8
,
libvlc_AudioOutputDevice_SPDIF
=
10
}
libvlc_audio_output_device_types_t
;
/**
* Audio channels
*/
typedef
enum
libvlc_audio_output_channel_t
{
libvlc_AudioChannel_Error
=
-
1
,
libvlc_AudioChannel_Stereo
=
1
,
libvlc_AudioChannel_RStereo
=
2
,
libvlc_AudioChannel_Left
=
3
,
libvlc_AudioChannel_Right
=
4
,
libvlc_AudioChannel_Dolbys
=
5
}
libvlc_audio_output_channel_t
;
/**
* Get the list of available audio outputs
*
* \param p_instance libvlc instance
* \param p_e an initialized exception pointer
* \return list of available audio outputs, at the end free it with
* \see libvlc_audio_output_list_release \see libvlc_audio_output_t
*/
VLC_PUBLIC_API
libvlc_audio_output_t
*
libvlc_audio_output_list_get
(
libvlc_instance_t
*
,
libvlc_exception_t
*
);
/**
* Free the list of available audio outputs
*
* \param p_list list with audio outputs for release
*/
VLC_PUBLIC_API
void
libvlc_audio_output_list_release
(
libvlc_audio_output_t
*
);
/**
* Set the audio output.
* Change will be applied after stop and play.
*
* \param p_instance libvlc instance
* \param psz_name name of audio output,
* use psz_name of \see libvlc_audio_output_t
* \return true if function succeded
*/
VLC_PUBLIC_API
int
libvlc_audio_output_set
(
libvlc_instance_t
*
,
const
char
*
);
/**
* Get count of devices for audio output, these devices are hardware oriented
* like analor or digital output of sound card
*
* \param p_instance libvlc instance
* \param psz_audio_output - name of audio output, \see libvlc_audio_output_t
* \return number of devices
*/
VLC_PUBLIC_API
int
libvlc_audio_output_device_count
(
libvlc_instance_t
*
,
const
char
*
);
/**
* Get long name of device, if not available short name given
*
* \param p_instance libvlc instance
* \param psz_audio_output - name of audio output, \see libvlc_audio_output_t
* \param i_device device index
* \return long name of device
*/
VLC_PUBLIC_API
char
*
libvlc_audio_output_device_longname
(
libvlc_instance_t
*
,
const
char
*
,
int
);
/**
* Get id name of device
*
* \param p_instance libvlc instance
* \param psz_audio_output - name of audio output, \see libvlc_audio_output_t
* \param i_device device index
* \return id name of device, use for setting device, need to be free after use
*/
VLC_PUBLIC_API
char
*
libvlc_audio_output_device_id
(
libvlc_instance_t
*
,
const
char
*
,
int
);
/**
* Set device for using
*
* \param p_instance libvlc instance
* \param psz_audio_output - name of audio output, \see libvlc_audio_output_t
* \param psz_device_id device
*/
VLC_PUBLIC_API
void
libvlc_audio_output_device_set
(
libvlc_instance_t
*
,
const
char
*
,
const
char
*
);
/**
* Get current audio device type. Device type describes something like
* character of output sound - stereo sound, 2.1, 5.1 etc
*
* \param p_instance vlc instance
* \param p_e an initialized exception pointer
* \return the audio devices type \see libvlc_audio_output_device_types_t
*/
VLC_PUBLIC_API
int
libvlc_audio_output_get_device_type
(
libvlc_instance_t
*
,
libvlc_exception_t
*
);
/**
* Set current audio device type.
*
* \param p_instance vlc instance
* \param device_type the audio device type,
according to \see libvlc_audio_output_device_types_t
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_audio_output_set_device_type
(
libvlc_instance_t
*
,
int
,
libvlc_exception_t
*
);
/**
* Toggle mute status.
*
* \param p_instance libvlc instance
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_audio_toggle_mute
(
libvlc_instance_t
*
,
libvlc_exception_t
*
);
/**
* Get current mute status.
*
* \param p_instance libvlc instance
* \param p_e an initialized exception pointer
* \return the mute status (boolean)
*/
VLC_PUBLIC_API
int
libvlc_audio_get_mute
(
libvlc_instance_t
*
,
libvlc_exception_t
*
);
/**
* Set mute status.
*
* \param p_instance libvlc instance
* \param status If status is true then mute, otherwise unmute
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_audio_set_mute
(
libvlc_instance_t
*
,
int
,
libvlc_exception_t
*
);
/**
* Get current audio level.
*
* \param p_instance libvlc instance
* \param p_e an initialized exception pointer
* \return the audio level (int)
*/
VLC_PUBLIC_API
int
libvlc_audio_get_volume
(
libvlc_instance_t
*
,
libvlc_exception_t
*
);
/**
* Set current audio level.
*
* \param p_instance libvlc instance
* \param i_volume the volume (int)
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_audio_set_volume
(
libvlc_instance_t
*
,
int
,
libvlc_exception_t
*
);
/**
* Get number of available audio tracks.
*
* \param p_mi media player
* \param p_e an initialized exception
* \return the number of available audio tracks (int)
*/
VLC_PUBLIC_API
int
libvlc_audio_get_track_count
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Get the description of available audio tracks.
*
* \param p_mi media player
* \param p_e an initialized exception
* \return list with description of available audio tracks
*/
VLC_PUBLIC_API
libvlc_track_description_t
*
libvlc_audio_get_track_description
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Get current audio track.
*
* \param p_mi media player
* \param p_e an initialized exception pointer
* \return the audio track (int)
*/
VLC_PUBLIC_API
int
libvlc_audio_get_track
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Set current audio track.
*
* \param p_mi media player
* \param i_track the track (int)
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_audio_set_track
(
libvlc_media_player_t
*
,
int
,
libvlc_exception_t
*
);
/**
* Get current audio channel.
*
* \param p_instance vlc instance
* \param p_e an initialized exception pointer
* \return the audio channel \see libvlc_audio_output_channel_t
*/
VLC_PUBLIC_API
int
libvlc_audio_get_channel
(
libvlc_instance_t
*
,
libvlc_exception_t
*
);
/**
* Set current audio channel.
*
* \param p_instance vlc instance
* \param channel the audio channel, \see libvlc_audio_output_channel_t
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_audio_set_channel
(
libvlc_instance_t
*
,
int
,
libvlc_exception_t
*
);
/** @} audio */
/** @} media_player */
/*****************************************************************************
* Event handling
*****************************************************************************/
/** \defgroup libvlc_event libvlc_event
* \ingroup libvlc_core
* LibVLC Events
* @{
*/
/**
* Register for an event notification.
*
* \param p_event_manager the event manager to which you want to attach to.
* Generally it is obtained by vlc_my_object_event_manager() where
* my_object is the object you want to listen to.
* \param i_event_type the desired event to which we want to listen
* \param f_callback the function to call when i_event_type occurs
* \param user_data user provided data to carry with the event
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_event_attach
(
libvlc_event_manager_t
*
p_event_manager
,
libvlc_event_type_t
i_event_type
,
libvlc_callback_t
f_callback
,
void
*
user_data
,
libvlc_exception_t
*
p_e
);
/**
* Unregister an event notification.
*
* \param p_event_manager the event manager
* \param i_event_type the desired event to which we want to unregister
* \param f_callback the function to call when i_event_type occurs
* \param p_user_data user provided data to carry with the event
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_event_detach
(
libvlc_event_manager_t
*
p_event_manager
,
libvlc_event_type_t
i_event_type
,
libvlc_callback_t
f_callback
,
void
*
p_user_data
,
libvlc_exception_t
*
p_e
);
/**
* Get an event's type name.
*
* \param i_event_type the desired event
*/
VLC_PUBLIC_API
const
char
*
libvlc_event_type_name
(
libvlc_event_type_t
event_type
);
VLC_PUBLIC_API
const
char
*
libvlc_event_type_name
(
libvlc_event_type_t
event_type
);
/** @} */
/*****************************************************************************
* Media Library
*****************************************************************************/
/** \defgroup libvlc_media_library libvlc_media_library
* \ingroup libvlc
* LibVLC Media Library
* @{
*/
VLC_PUBLIC_API
libvlc_media_library_t
*
libvlc_media_library_new
(
libvlc_instance_t
*
p_inst
,
libvlc_exception_t
*
p_e
);
/**
* Release media library object. This functions decrements the
* reference count of the media library object. If it reaches 0,
* then the object will be released.
*
* \param p_mlib media library object
*/
VLC_PUBLIC_API
void
libvlc_media_library_release
(
libvlc_media_library_t
*
p_mlib
);
/**
* Retain a reference to a media library object. This function will
* increment the reference counting for this object. Use
* libvlc_media_library_release() to decrement the reference count.
*
* \param p_mlib media library object
*/
VLC_PUBLIC_API
void
libvlc_media_library_retain
(
libvlc_media_library_t
*
p_mlib
);
/**
* Load media library.
*
* \param p_mlib media library object
* \param p_e an initialized exception object.
*/
VLC_PUBLIC_API
void
libvlc_media_library_load
(
libvlc_media_library_t
*
p_mlib
,
libvlc_exception_t
*
p_e
);
/**
* Save media library.
*
* \param p_mlib media library object
* \param p_e an initialized exception object.
*/
VLC_PUBLIC_API
void
libvlc_media_library_save
(
libvlc_media_library_t
*
p_mlib
,
libvlc_exception_t
*
p_e
);
/**
* Get media library subitems.
*
* \param p_mlib media library object
* \param p_e an initialized exception object.
* \return media list subitems
*/
VLC_PUBLIC_API
libvlc_media_list_t
*
libvlc_media_library_media_list
(
libvlc_media_library_t
*
p_mlib
,
libvlc_exception_t
*
p_e
);
/** @} */
/*****************************************************************************
* Services/Media Discovery
*****************************************************************************/
/** \defgroup libvlc_media_discoverer libvlc_media_discoverer
* \ingroup libvlc
* LibVLC Media Discoverer
* @{
*/
/**
* Discover media service by name.
*
* \param p_inst libvlc instance
* \param psz_name service name
* \param p_e an initialized exception object
* \return media discover object
*/
VLC_PUBLIC_API
libvlc_media_discoverer_t
*
libvlc_media_discoverer_new_from_name
(
libvlc_instance_t
*
p_inst
,
const
char
*
psz_name
,
libvlc_exception_t
*
p_e
);
/**
* Release media discover object. If the reference count reaches 0, then
* the object will be released.
*
* \param p_mdis media service discover object
*/
VLC_PUBLIC_API
void
libvlc_media_discoverer_release
(
libvlc_media_discoverer_t
*
p_mdis
);
/**
* Get media service discover object its localized name.
*
* \param media discover object
* \return localized name
*/
VLC_PUBLIC_API
char
*
libvlc_media_discoverer_localized_name
(
libvlc_media_discoverer_t
*
p_mdis
);
/**
* Get media service discover media list.
*
* \param p_mdis media service discover object
* \return list of media items
*/
VLC_PUBLIC_API
libvlc_media_list_t
*
libvlc_media_discoverer_media_list
(
libvlc_media_discoverer_t
*
p_mdis
);
/**
* Get event manager from media service discover object.
*
* \param p_mdis media service discover object
* \return event manager object.
*/
VLC_PUBLIC_API
libvlc_event_manager_t
*
libvlc_media_discoverer_event_manager
(
libvlc_media_discoverer_t
*
p_mdis
);
/**
* Query if media service discover object is running.
*
* \param p_mdis media service discover object
* \return true if running, false if not
*/
VLC_PUBLIC_API
int
libvlc_media_discoverer_is_running
(
libvlc_media_discoverer_t
*
p_mdis
);
/**@} */
/*****************************************************************************
* Message log handling
*****************************************************************************/
...
...
include/vlc/libvlc_events.h
View file @
9e6f5af4
...
...
@@ -44,7 +44,7 @@ extern "C" {
* @{
*/
typedef
enum
libvlc_event_type_t
{
enum
libvlc_event_type_t
{
/* Append new event types at the end.
* Do not remove, insert or re-order any entry. */
libvlc_MediaMetaChanged
,
...
...
@@ -89,7 +89,7 @@ typedef enum libvlc_event_type_t {
libvlc_MediaPlayerTitleChanged
,
libvlc_MediaPlayerSnapshotTaken
,
/* New event types HERE */
}
libvlc_event_type_t
;
};
/**
* An Event
...
...
@@ -98,7 +98,7 @@ typedef enum libvlc_event_type_t {
* \param u Event dependent content
*/
typedef
struct
libvlc_event_t
struct
libvlc_event_t
{
libvlc_event_type_t
type
;
void
*
p_obj
;
...
...
@@ -203,21 +203,8 @@ typedef struct libvlc_event_t
}
media_player_snapshot_taken
;
}
u
;
}
libvlc_event_t
;
};
/**
* Event manager that belongs to a libvlc object, and from whom events can
* be received.
*/
typedef
struct
libvlc_event_manager_t
libvlc_event_manager_t
;
/**
* Callback function notification
* \param p_event the event triggering the callback
*/
typedef
void
(
*
libvlc_callback_t
)(
const
libvlc_event_t
*
,
void
*
);
/**@} */
...
...
include/vlc/libvlc_media.h
0 → 100644
View file @
9e6f5af4
/*****************************************************************************
* libvlc.h: libvlc external API
*****************************************************************************
* Copyright (C) 1998-2009 the VideoLAN team
* $Id$
*
* Authors: Clément Stenac <zorglub@videolan.org>
* Jean-Paul Saman <jpsaman@videolan.org>
* Pierre d'Herbemont <pdherbemont@videolan.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
/**
* \file
* This file defines libvlc_media external API
*/
#ifndef VLC_LIBVLC_MEDIA_H
#define VLC_LIBVLC_MEDIA_H 1
/*****************************************************************************
* media
*****************************************************************************/
/** \defgroup libvlc_media libvlc_media
* \ingroup libvlc
* LibVLC Media
* @{
*/
typedef
struct
libvlc_media_t
libvlc_media_t
;
/* Meta Handling */
/** defgroup libvlc_meta libvlc_meta
* \ingroup libvlc_media
* LibVLC Media Meta
* @{
*/
typedef
enum
libvlc_meta_t
{
libvlc_meta_Title
,
libvlc_meta_Artist
,
libvlc_meta_Genre
,
libvlc_meta_Copyright
,
libvlc_meta_Album
,
libvlc_meta_TrackNumber
,
libvlc_meta_Description
,
libvlc_meta_Rating
,
libvlc_meta_Date
,
libvlc_meta_Setting
,
libvlc_meta_URL
,
libvlc_meta_Language
,
libvlc_meta_NowPlaying
,
libvlc_meta_Publisher
,
libvlc_meta_EncodedBy
,
libvlc_meta_ArtworkURL
,
libvlc_meta_TrackID
,
/* Add new meta types HERE */
}
libvlc_meta_t
;
/** @}*/
/**
* Note the order of libvlc_state_t enum must match exactly the order of
* @see mediacontrol_PlayerStatus, @see input_state_e enums,
* and VideoLAN.LibVLC.State (at bindings/cil/src/media.cs).
*
* Expected states by web plugins are:
* IDLE/CLOSE=0, OPENING=1, BUFFERING=2, PLAYING=3, PAUSED=4,
* STOPPING=5, ENDED=6, ERROR=7
*/
typedef
enum
libvlc_state_t
{
libvlc_NothingSpecial
=
0
,
libvlc_Opening
,
libvlc_Buffering
,
libvlc_Playing
,
libvlc_Paused
,
libvlc_Stopped
,
libvlc_Ended
,
libvlc_Error
}
libvlc_state_t
;
/**
* Create a media with the given MRL.
*
* \param p_instance the instance
* \param psz_mrl the MRL to read
* \param p_e an initialized exception pointer
* \return the newly created media
*/
VLC_PUBLIC_API
libvlc_media_t
*
libvlc_media_new
(
libvlc_instance_t
*
p_instance
,
const
char
*
psz_mrl
,
libvlc_exception_t
*
p_e
);
/**
* Create a media as an empty node with the passed name.
*
* \param p_instance the instance
* \param psz_name the name of the node
* \param p_e an initialized exception pointer
* \return the new empty media
*/
VLC_PUBLIC_API
libvlc_media_t
*
libvlc_media_new_as_node
(
libvlc_instance_t
*
p_instance
,
const
char
*
psz_name
,
libvlc_exception_t
*
p_e
);
/**
* Add an option to the media.
*
* This option will be used to determine how the media_player will
* read the media. This allows to use VLC's advanced
* reading/streaming options on a per-media basis.
*
* The options are detailed in vlc --long-help, for instance "--sout-all"
*
* \param p_instance the instance
* \param ppsz_options the options (as a string)
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_media_add_option
(
libvlc_media_t
*
p_md
,
const
char
*
ppsz_options
,
libvlc_exception_t
*
p_e
);
/**
* Add an option to the media from an untrusted source.
*
* This option will be used to determine how the media_player will
* read the media. This allows to use VLC's advanced
* reading/streaming options on a per-media basis.
*
* The options are detailed in vlc --long-help, for instance "--sout-all"
*
* \param p_instance the instance
* \param ppsz_options the options (as a string)
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_media_add_option_untrusted
(
libvlc_media_t
*
p_md
,
const
char
*
ppsz_options
,
libvlc_exception_t
*
p_e
);
/**
* Retain a reference to a media descriptor object (libvlc_media_t). Use
* libvlc_media_release() to decrement the reference count of a
* media descriptor object.
*
* \param p_meta_desc a media descriptor object.
*/
VLC_PUBLIC_API
void
libvlc_media_retain
(
libvlc_media_t
*
p_meta_desc
);
/**
* Decrement the reference count of a media descriptor object. If the
* reference count is 0, then libvlc_media_release() will release the
* media descriptor object. It will send out an libvlc_MediaFreed event
* to all listeners. If the media descriptor object has been released it
* should not be used again.
*
* \param p_meta_desc a media descriptor object.
*/
VLC_PUBLIC_API
void
libvlc_media_release
(
libvlc_media_t
*
p_meta_desc
);
/**
* Get the media resource locator (mrl) from a media descriptor object
*
* \param p_md a media descriptor object
* \param p_e an initialized exception object
* \return string with mrl of media descriptor object
*/
VLC_PUBLIC_API
char
*
libvlc_media_get_mrl
(
libvlc_media_t
*
p_md
,
libvlc_exception_t
*
p_e
);
/**
* Duplicate a media descriptor object.
*
* \param p_meta_desc a media descriptor object.
*/
VLC_PUBLIC_API
libvlc_media_t
*
libvlc_media_duplicate
(
libvlc_media_t
*
);
/**
* Read the meta of the media.
*
* \param p_meta_desc the media to read
* \param e_meta_desc the meta to read
* \param p_e an initialized exception pointer
* \return the media's meta
*/
VLC_PUBLIC_API
char
*
libvlc_media_get_meta
(
libvlc_media_t
*
p_meta_desc
,
libvlc_meta_t
e_meta
,
libvlc_exception_t
*
p_e
);
/**
* Get current state of media descriptor object. Possible media states
* are defined in libvlc_structures.c ( libvlc_NothingSpecial=0,
* libvlc_Opening, libvlc_Buffering, libvlc_Playing, libvlc_Paused,
* libvlc_Stopped, libvlc_Ended,
* libvlc_Error).
*
* @see libvlc_state_t
* \param p_meta_desc a media descriptor object
* \param p_e an initialized exception object
* \return state of media descriptor object
*/
VLC_PUBLIC_API
libvlc_state_t
libvlc_media_get_state
(
libvlc_media_t
*
p_meta_desc
,
libvlc_exception_t
*
p_e
);
/**
* Get subitems of media descriptor object. This will increment
* the reference count of supplied media descriptor object. Use
* libvlc_media_list_release() to decrement the reference counting.
*
* \param p_md media descriptor object
* \param p_e initalized exception object
* \return list of media descriptor subitems or NULL
*/
/* This method uses libvlc_media_list_t, however, media_list usage is optionnal
* and this is here for convenience */
#define VLC_FORWARD_DECLARE_OBJECT(a) struct a
VLC_PUBLIC_API
VLC_FORWARD_DECLARE_OBJECT
(
libvlc_media_list_t
*
)
libvlc_media_subitems
(
libvlc_media_t
*
p_md
,
libvlc_exception_t
*
p_e
);
/**
* Get event manager from media descriptor object.
* NOTE: this function doesn't increment reference counting.
*
* \param p_md a media descriptor object
* \param p_e an initialized exception object
* \return event manager object
*/
VLC_PUBLIC_API
libvlc_event_manager_t
*
libvlc_media_event_manager
(
libvlc_media_t
*
p_md
,
libvlc_exception_t
*
p_e
);
/**
* Get duration of media descriptor object item.
*
* \param p_md media descriptor object
* \param p_e an initialized exception object
* \return duration of media item
*/
VLC_PUBLIC_API
libvlc_time_t
libvlc_media_get_duration
(
libvlc_media_t
*
p_md
,
libvlc_exception_t
*
p_e
);
/**
* Get preparsed status for media descriptor object.
*
* \param p_md media descriptor object
* \param p_e an initialized exception object
* \return true if media object has been preparsed otherwise it returns false
*/
VLC_PUBLIC_API
int
libvlc_media_is_preparsed
(
libvlc_media_t
*
p_md
,
libvlc_exception_t
*
p_e
);
/**
* Sets media descriptor's user_data. user_data is specialized data
* accessed by the host application, VLC.framework uses it as a pointer to
* an native object that references a libvlc_media_t pointer
*
* \param p_md media descriptor object
* \param p_new_user_data pointer to user data
* \param p_e an initialized exception object
*/
VLC_PUBLIC_API
void
libvlc_media_set_user_data
(
libvlc_media_t
*
p_md
,
void
*
p_new_user_data
,
libvlc_exception_t
*
p_e
);
/**
* Get media descriptor's user_data. user_data is specialized data
* accessed by the host application, VLC.framework uses it as a pointer to
* an native object that references a libvlc_media_t pointer
*
* \param p_md media descriptor object
* \param p_e an initialized exception object
*/
VLC_PUBLIC_API
void
*
libvlc_media_get_user_data
(
libvlc_media_t
*
p_md
,
libvlc_exception_t
*
p_e
);
/** @}*/
#endif
/* VLC_LIBVLC_MEDIA_H */
include/vlc/libvlc_media_discoverer.h
0 → 100644
View file @
9e6f5af4
/*****************************************************************************
* libvlc.h: libvlc external API
*****************************************************************************
* Copyright (C) 1998-2009 the VideoLAN team
* $Id$
*
* Authors: Clément Stenac <zorglub@videolan.org>
* Jean-Paul Saman <jpsaman@videolan.org>
* Pierre d'Herbemont <pdherbemont@videolan.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
/**
* \file
* This file defines libvlc_media_discoverer external API
*/
#ifndef VLC_LIBVLC_MEDIA_DISCOVERER_H
#define VLC_LIBVLC_MEDIA_DISCOVERER_H 1
/*****************************************************************************
* Services/Media Discovery
*****************************************************************************/
/** \defgroup libvlc_media_discoverer libvlc_media_discoverer
* \ingroup libvlc
* LibVLC Media Discoverer
* @{
*/
typedef
struct
libvlc_media_discoverer_t
libvlc_media_discoverer_t
;
/**
* Discover media service by name.
*
* \param p_inst libvlc instance
* \param psz_name service name
* \param p_e an initialized exception object
* \return media discover object
*/
VLC_PUBLIC_API
libvlc_media_discoverer_t
*
libvlc_media_discoverer_new_from_name
(
libvlc_instance_t
*
p_inst
,
const
char
*
psz_name
,
libvlc_exception_t
*
p_e
);
/**
* Release media discover object. If the reference count reaches 0, then
* the object will be released.
*
* \param p_mdis media service discover object
*/
VLC_PUBLIC_API
void
libvlc_media_discoverer_release
(
libvlc_media_discoverer_t
*
p_mdis
);
/**
* Get media service discover object its localized name.
*
* \param media discover object
* \return localized name
*/
VLC_PUBLIC_API
char
*
libvlc_media_discoverer_localized_name
(
libvlc_media_discoverer_t
*
p_mdis
);
/**
* Get media service discover media list.
*
* \param p_mdis media service discover object
* \return list of media items
*/
VLC_PUBLIC_API
libvlc_media_list_t
*
libvlc_media_discoverer_media_list
(
libvlc_media_discoverer_t
*
p_mdis
);
/**
* Get event manager from media service discover object.
*
* \param p_mdis media service discover object
* \return event manager object.
*/
VLC_PUBLIC_API
libvlc_event_manager_t
*
libvlc_media_discoverer_event_manager
(
libvlc_media_discoverer_t
*
p_mdis
);
/**
* Query if media service discover object is running.
*
* \param p_mdis media service discover object
* \return true if running, false if not
*/
VLC_PUBLIC_API
int
libvlc_media_discoverer_is_running
(
libvlc_media_discoverer_t
*
p_mdis
);
/**@} */
# ifdef __cplusplus
}
# endif
#endif
/* <vlc/libvlc.h> */
include/vlc/libvlc_media_library.h
0 → 100644
View file @
9e6f5af4
/*****************************************************************************
* libvlc.h: libvlc external API
*****************************************************************************
* Copyright (C) 1998-2009 the VideoLAN team
* $Id$
*
* Authors: Clément Stenac <zorglub@videolan.org>
* Jean-Paul Saman <jpsaman@videolan.org>
* Pierre d'Herbemont <pdherbemont@videolan.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
/**
* \file
* This file defines libvlc_media_library external API
*/
#ifndef VLC_LIBVLC_MEDIA_LIBRARY_H
#define VLC_LIBVLC_MEDIA_LIBRARY_H 1
/*****************************************************************************
* Media Library
*****************************************************************************/
/** \defgroup libvlc_media_library libvlc_media_library
* \ingroup libvlc
* LibVLC Media Library
* @{
*/
typedef
struct
libvlc_media_library_t
libvlc_media_library_t
;
VLC_PUBLIC_API
libvlc_media_library_t
*
libvlc_media_library_new
(
libvlc_instance_t
*
p_inst
,
libvlc_exception_t
*
p_e
);
/**
* Release media library object. This functions decrements the
* reference count of the media library object. If it reaches 0,
* then the object will be released.
*
* \param p_mlib media library object
*/
VLC_PUBLIC_API
void
libvlc_media_library_release
(
libvlc_media_library_t
*
p_mlib
);
/**
* Retain a reference to a media library object. This function will
* increment the reference counting for this object. Use
* libvlc_media_library_release() to decrement the reference count.
*
* \param p_mlib media library object
*/
VLC_PUBLIC_API
void
libvlc_media_library_retain
(
libvlc_media_library_t
*
p_mlib
);
/**
* Load media library.
*
* \param p_mlib media library object
* \param p_e an initialized exception object.
*/
VLC_PUBLIC_API
void
libvlc_media_library_load
(
libvlc_media_library_t
*
p_mlib
,
libvlc_exception_t
*
p_e
);
/**
* Save media library.
*
* \param p_mlib media library object
* \param p_e an initialized exception object.
*/
VLC_PUBLIC_API
void
libvlc_media_library_save
(
libvlc_media_library_t
*
p_mlib
,
libvlc_exception_t
*
p_e
);
/**
* Get media library subitems.
*
* \param p_mlib media library object
* \param p_e an initialized exception object.
* \return media list subitems
*/
VLC_PUBLIC_API
libvlc_media_list_t
*
libvlc_media_library_media_list
(
libvlc_media_library_t
*
p_mlib
,
libvlc_exception_t
*
p_e
);
/** @} */
# ifdef __cplusplus
}
# endif
#endif
/* VLC_LIBVLC_MEDIA_LIBRARY_H */
include/vlc/libvlc_media_list.h
View file @
9e6f5af4
...
...
@@ -42,6 +42,9 @@ extern "C" {
* @{
*/
typedef
struct
libvlc_media_list_t
libvlc_media_list_t
;
typedef
struct
libvlc_media_list_view_t
libvlc_media_list_view_t
;
/**
* Create an empty media list.
*
...
...
@@ -242,259 +245,6 @@ VLC_PUBLIC_API libvlc_event_manager_t *
libvlc_media_list_event_manager
(
libvlc_media_list_t
*
,
libvlc_exception_t
*
);
/*****************************************************************************
* Media List View
*****************************************************************************/
/** \defgroup libvlc_media_list_view libvlc_media_list_view
* \ingroup libvlc_media_list
* LibVLC Media List View, represent a media_list using a different layout
* @{ */
/**
* Retain reference to a media list view
*
* \param p_mlv a media list view created with libvlc_media_list_view_new()
*/
VLC_PUBLIC_API
void
libvlc_media_list_view_retain
(
libvlc_media_list_view_t
*
p_mlv
);
/**
* Release reference to a media list view. If the refcount reaches 0, then
* the object will be released.
*
* \param p_mlv a media list view created with libvlc_media_list_view_new()
*/
VLC_PUBLIC_API
void
libvlc_media_list_view_release
(
libvlc_media_list_view_t
*
p_mlv
);
/**
* Get libvlc_event_manager from this media list view instance.
* The p_event_manager is immutable, so you don't have to hold the lock
*
* \param p_mlv a media list view instance
* \return libvlc_event_manager
*/
VLC_PUBLIC_API
libvlc_event_manager_t
*
libvlc_media_list_view_event_manager
(
libvlc_media_list_view_t
*
p_mlv
);
/**
* Get count on media list view items
*
* \param p_mlv a media list view instance
* \param p_e initialized exception object
* \return number of items in media list view
*/
VLC_PUBLIC_API
int
libvlc_media_list_view_count
(
libvlc_media_list_view_t
*
p_mlv
,
libvlc_exception_t
*
p_e
);
/**
* List media instance in media list view at an index position
*
* \param p_mlv a media list view instance
* \param i_index index position in array where to insert
* \param p_e initialized exception object
* \return media instance at position i_pos and libvlc_media_retain() has been called to increase the refcount on this object.
*/
VLC_PUBLIC_API
libvlc_media_t
*
libvlc_media_list_view_item_at_index
(
libvlc_media_list_view_t
*
p_mlv
,
int
i_index
,
libvlc_exception_t
*
p_e
);
VLC_PUBLIC_API
libvlc_media_list_view_t
*
libvlc_media_list_view_children_at_index
(
libvlc_media_list_view_t
*
p_mlv
,
int
index
,
libvlc_exception_t
*
p_e
);
VLC_PUBLIC_API
libvlc_media_list_view_t
*
libvlc_media_list_view_children_for_item
(
libvlc_media_list_view_t
*
p_mlv
,
libvlc_media_t
*
p_md
,
libvlc_exception_t
*
p_e
);
/**
* Get index position of media instance in media list view.
* The function will return the first occurence.
*
* \param p_mlv a media list view instance
* \param p_md media instance
* \param p_e initialized exception object
* \return index position in array of p_md
*/
VLC_PUBLIC_API
int
libvlc_media_list_view_index_of_item
(
libvlc_media_list_view_t
*
p_mlv
,
libvlc_media_t
*
p_md
,
libvlc_exception_t
*
p_e
);
/**
* Insert media instance in media list view at index position
*
* \param p_mlv a media list view instance
* \param p_md media instance
* \param index position in array where to insert
* \param p_e initialized exception object
*/
VLC_PUBLIC_API
void
libvlc_media_list_view_insert_at_index
(
libvlc_media_list_view_t
*
p_mlv
,
libvlc_media_t
*
p_md
,
int
index
,
libvlc_exception_t
*
p_e
);
/**
* Remove media instance in media list view from index position
*
* \param p_mlv a media list view instance
* \param index position in array of media instance to remove
* \param p_e initialized exception object
*/
VLC_PUBLIC_API
void
libvlc_media_list_view_remove_at_index
(
libvlc_media_list_view_t
*
p_mlv
,
int
index
,
libvlc_exception_t
*
p_e
);
VLC_PUBLIC_API
void
libvlc_media_list_view_add_item
(
libvlc_media_list_view_t
*
p_mlv
,
libvlc_media_t
*
p_md
,
libvlc_exception_t
*
p_e
);
VLC_PUBLIC_API
libvlc_media_list_t
*
libvlc_media_list_view_parent_media_list
(
libvlc_media_list_view_t
*
p_mlv
,
libvlc_exception_t
*
p_e
);
/** @} media_list_view */
/*****************************************************************************
* Media List Player
*****************************************************************************/
/** \defgroup libvlc_media_list_player libvlc_media_list_player
* \ingroup libvlc_media_list_player
* LibVLC Media List Player, play a media_list. You can see that as a media
* instance subclass
* @{
*/
/**
* Create new media_list_player.
*
* \param p_instance libvlc instance
* \param p_e initialized exception instance
* \return media list player instance
*/
VLC_PUBLIC_API
libvlc_media_list_player_t
*
libvlc_media_list_player_new
(
libvlc_instance_t
*
p_instance
,
libvlc_exception_t
*
p_e
);
/**
* Release media_list_player.
*
* \param p_mlp media list player instance
*/
VLC_PUBLIC_API
void
libvlc_media_list_player_release
(
libvlc_media_list_player_t
*
p_mlp
);
/**
* Replace media player in media_list_player with this instance.
*
* \param p_mlp media list player instance
* \param p_mi media player instance
* \param p_e initialized exception instance
*/
VLC_PUBLIC_API
void
libvlc_media_list_player_set_media_player
(
libvlc_media_list_player_t
*
p_mlp
,
libvlc_media_player_t
*
p_mi
,
libvlc_exception_t
*
p_e
);
VLC_PUBLIC_API
void
libvlc_media_list_player_set_media_list
(
libvlc_media_list_player_t
*
p_mlp
,
libvlc_media_list_t
*
p_mlist
,
libvlc_exception_t
*
p_e
);
/**
* Play media list
*
* \param p_mlp media list player instance
* \param p_e initialized exception instance
*/
VLC_PUBLIC_API
void
libvlc_media_list_player_play
(
libvlc_media_list_player_t
*
p_mlp
,
libvlc_exception_t
*
p_e
);
/**
* Pause media list
*
* \param p_mlp media list player instance
* \param p_e initialized exception instance
*/
VLC_PUBLIC_API
void
libvlc_media_list_player_pause
(
libvlc_media_list_player_t
*
p_mlp
,
libvlc_exception_t
*
p_e
);
/**
* Is media list playing?
*
* \param p_mlp media list player instance
* \param p_e initialized exception instance
* \return true for playing and false for not playing
*/
VLC_PUBLIC_API
int
libvlc_media_list_player_is_playing
(
libvlc_media_list_player_t
*
p_mlp
,
libvlc_exception_t
*
p_e
);
/**
* Get current libvlc_state of media list player
*
* \param p_mlp media list player instance
* \param p_e initialized exception instance
* \return libvlc_state_t for media list player
*/
VLC_PUBLIC_API
libvlc_state_t
libvlc_media_list_player_get_state
(
libvlc_media_list_player_t
*
p_mlp
,
libvlc_exception_t
*
p_e
);
/**
* Play media list item at position index
*
* \param p_mlp media list player instance
* \param i_index index in media list to play
* \param p_e initialized exception instance
*/
VLC_PUBLIC_API
void
libvlc_media_list_player_play_item_at_index
(
libvlc_media_list_player_t
*
p_mlp
,
int
i_index
,
libvlc_exception_t
*
p_e
);
VLC_PUBLIC_API
void
libvlc_media_list_player_play_item
(
libvlc_media_list_player_t
*
p_mlp
,
libvlc_media_t
*
p_md
,
libvlc_exception_t
*
p_e
);
/**
* Stop playing media list
*
* \param p_mlp media list player instance
* \param p_e initialized exception instance
*/
VLC_PUBLIC_API
void
libvlc_media_list_player_stop
(
libvlc_media_list_player_t
*
p_mlp
,
libvlc_exception_t
*
p_e
);
/**
* Play next item from media list
*
* \param p_mlp media list player instance
* \param p_e initialized exception instance
*/
VLC_PUBLIC_API
void
libvlc_media_list_player_next
(
libvlc_media_list_player_t
*
p_mlp
,
libvlc_exception_t
*
p_e
);
/* NOTE: shouldn't there also be a libvlc_media_list_player_prev() */
/** @} media_list_player */
/** @} media_list */
# ifdef __cplusplus
...
...
include/vlc/libvlc_media_list_player.h
0 → 100644
View file @
9e6f5af4
/*****************************************************************************
* libvlc_media_list.h: libvlc_media_list API
*****************************************************************************
* Copyright (C) 1998-2008 the VideoLAN team
* $Id$
*
* Authors: Pierre d'Herbemont
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
#ifndef LIBVLC_MEDIA_LIST_PLAYER_H
#define LIBVLC_MEDIA_LIST_PLAYER_H 1
/**
* \file
* This file defines libvlc_media_list_player API
*/
# ifdef __cplusplus
extern
"C"
{
# endif
/*****************************************************************************
* Media List Player
*****************************************************************************/
/** \defgroup libvlc_media_list_player libvlc_media_list_player
* \ingroup libvlc
* LibVLC Media List Player, play a media_list. You can see that as a media
* instance subclass
* @{
*/
typedef
struct
libvlc_media_list_player_t
libvlc_media_list_player_t
;
/**
* Create new media_list_player.
*
* \param p_instance libvlc instance
* \param p_e initialized exception instance
* \return media list player instance
*/
VLC_PUBLIC_API
libvlc_media_list_player_t
*
libvlc_media_list_player_new
(
libvlc_instance_t
*
p_instance
,
libvlc_exception_t
*
p_e
);
/**
* Release media_list_player.
*
* \param p_mlp media list player instance
*/
VLC_PUBLIC_API
void
libvlc_media_list_player_release
(
libvlc_media_list_player_t
*
p_mlp
);
/**
* Replace media player in media_list_player with this instance.
*
* \param p_mlp media list player instance
* \param p_mi media player instance
* \param p_e initialized exception instance
*/
VLC_PUBLIC_API
void
libvlc_media_list_player_set_media_player
(
libvlc_media_list_player_t
*
p_mlp
,
libvlc_media_player_t
*
p_mi
,
libvlc_exception_t
*
p_e
);
VLC_PUBLIC_API
void
libvlc_media_list_player_set_media_list
(
libvlc_media_list_player_t
*
p_mlp
,
libvlc_media_list_t
*
p_mlist
,
libvlc_exception_t
*
p_e
);
/**
* Play media list
*
* \param p_mlp media list player instance
* \param p_e initialized exception instance
*/
VLC_PUBLIC_API
void
libvlc_media_list_player_play
(
libvlc_media_list_player_t
*
p_mlp
,
libvlc_exception_t
*
p_e
);
/**
* Pause media list
*
* \param p_mlp media list player instance
* \param p_e initialized exception instance
*/
VLC_PUBLIC_API
void
libvlc_media_list_player_pause
(
libvlc_media_list_player_t
*
p_mlp
,
libvlc_exception_t
*
p_e
);
/**
* Is media list playing?
*
* \param p_mlp media list player instance
* \param p_e initialized exception instance
* \return true for playing and false for not playing
*/
VLC_PUBLIC_API
int
libvlc_media_list_player_is_playing
(
libvlc_media_list_player_t
*
p_mlp
,
libvlc_exception_t
*
p_e
);
/**
* Get current libvlc_state of media list player
*
* \param p_mlp media list player instance
* \param p_e initialized exception instance
* \return libvlc_state_t for media list player
*/
VLC_PUBLIC_API
libvlc_state_t
libvlc_media_list_player_get_state
(
libvlc_media_list_player_t
*
p_mlp
,
libvlc_exception_t
*
p_e
);
/**
* Play media list item at position index
*
* \param p_mlp media list player instance
* \param i_index index in media list to play
* \param p_e initialized exception instance
*/
VLC_PUBLIC_API
void
libvlc_media_list_player_play_item_at_index
(
libvlc_media_list_player_t
*
p_mlp
,
int
i_index
,
libvlc_exception_t
*
p_e
);
VLC_PUBLIC_API
void
libvlc_media_list_player_play_item
(
libvlc_media_list_player_t
*
p_mlp
,
libvlc_media_t
*
p_md
,
libvlc_exception_t
*
p_e
);
/**
* Stop playing media list
*
* \param p_mlp media list player instance
* \param p_e initialized exception instance
*/
VLC_PUBLIC_API
void
libvlc_media_list_player_stop
(
libvlc_media_list_player_t
*
p_mlp
,
libvlc_exception_t
*
p_e
);
/**
* Play next item from media list
*
* \param p_mlp media list player instance
* \param p_e initialized exception instance
*/
VLC_PUBLIC_API
void
libvlc_media_list_player_next
(
libvlc_media_list_player_t
*
p_mlp
,
libvlc_exception_t
*
p_e
);
/* NOTE: shouldn't there also be a libvlc_media_list_player_prev() */
/** @} media_list_player */
# ifdef __cplusplus
}
# endif
#endif
/* LIBVLC_MEDIA_LIST_PLAYER_H */
include/vlc/libvlc_media_list_view.h
0 → 100644
View file @
9e6f5af4
/*****************************************************************************
* libvlc_media_list.h: libvlc_media_list API
*****************************************************************************
* Copyright (C) 1998-2008 the VideoLAN team
* $Id$
*
* Authors: Pierre d'Herbemont
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
#ifndef LIBVLC_MEDIA_LIST_VIEW_H
#define LIBVLC_MEDIA_LIST_VIEW_H 1
/**
* \file
* This file defines libvlc_media_list API
*/
# ifdef __cplusplus
extern
"C"
{
# endif
/*****************************************************************************
* Media List View
*****************************************************************************/
/** \defgroup libvlc_media_list_view libvlc_media_list_view
* \ingroup libvlc
* LibVLC Media List View, represent a media_list using a different layout
* @{ */
/**
* Retain reference to a media list view
*
* \param p_mlv a media list view created with libvlc_media_list_view_new()
*/
VLC_PUBLIC_API
void
libvlc_media_list_view_retain
(
libvlc_media_list_view_t
*
p_mlv
);
/**
* Release reference to a media list view. If the refcount reaches 0, then
* the object will be released.
*
* \param p_mlv a media list view created with libvlc_media_list_view_new()
*/
VLC_PUBLIC_API
void
libvlc_media_list_view_release
(
libvlc_media_list_view_t
*
p_mlv
);
/**
* Get libvlc_event_manager from this media list view instance.
* The p_event_manager is immutable, so you don't have to hold the lock
*
* \param p_mlv a media list view instance
* \return libvlc_event_manager
*/
VLC_PUBLIC_API
libvlc_event_manager_t
*
libvlc_media_list_view_event_manager
(
libvlc_media_list_view_t
*
p_mlv
);
/**
* Get count on media list view items
*
* \param p_mlv a media list view instance
* \param p_e initialized exception object
* \return number of items in media list view
*/
VLC_PUBLIC_API
int
libvlc_media_list_view_count
(
libvlc_media_list_view_t
*
p_mlv
,
libvlc_exception_t
*
p_e
);
/**
* List media instance in media list view at an index position
*
* \param p_mlv a media list view instance
* \param i_index index position in array where to insert
* \param p_e initialized exception object
* \return media instance at position i_pos and libvlc_media_retain() has been called to increase the refcount on this object.
*/
VLC_PUBLIC_API
libvlc_media_t
*
libvlc_media_list_view_item_at_index
(
libvlc_media_list_view_t
*
p_mlv
,
int
i_index
,
libvlc_exception_t
*
p_e
);
VLC_PUBLIC_API
libvlc_media_list_view_t
*
libvlc_media_list_view_children_at_index
(
libvlc_media_list_view_t
*
p_mlv
,
int
index
,
libvlc_exception_t
*
p_e
);
VLC_PUBLIC_API
libvlc_media_list_view_t
*
libvlc_media_list_view_children_for_item
(
libvlc_media_list_view_t
*
p_mlv
,
libvlc_media_t
*
p_md
,
libvlc_exception_t
*
p_e
);
/**
* Get index position of media instance in media list view.
* The function will return the first occurence.
*
* \param p_mlv a media list view instance
* \param p_md media instance
* \param p_e initialized exception object
* \return index position in array of p_md
*/
VLC_PUBLIC_API
int
libvlc_media_list_view_index_of_item
(
libvlc_media_list_view_t
*
p_mlv
,
libvlc_media_t
*
p_md
,
libvlc_exception_t
*
p_e
);
/**
* Insert media instance in media list view at index position
*
* \param p_mlv a media list view instance
* \param p_md media instance
* \param index position in array where to insert
* \param p_e initialized exception object
*/
VLC_PUBLIC_API
void
libvlc_media_list_view_insert_at_index
(
libvlc_media_list_view_t
*
p_mlv
,
libvlc_media_t
*
p_md
,
int
index
,
libvlc_exception_t
*
p_e
);
/**
* Remove media instance in media list view from index position
*
* \param p_mlv a media list view instance
* \param index position in array of media instance to remove
* \param p_e initialized exception object
*/
VLC_PUBLIC_API
void
libvlc_media_list_view_remove_at_index
(
libvlc_media_list_view_t
*
p_mlv
,
int
index
,
libvlc_exception_t
*
p_e
);
VLC_PUBLIC_API
void
libvlc_media_list_view_add_item
(
libvlc_media_list_view_t
*
p_mlv
,
libvlc_media_t
*
p_md
,
libvlc_exception_t
*
p_e
);
VLC_PUBLIC_API
libvlc_media_list_t
*
libvlc_media_list_view_parent_media_list
(
libvlc_media_list_view_t
*
p_mlv
,
libvlc_exception_t
*
p_e
);
/** @} media_list_view */
# ifdef __cplusplus
}
# endif
#endif
/* LIBVLC_MEDIA_LIST_VIEW_H */
include/vlc/libvlc_media_player.h
0 → 100644
View file @
9e6f5af4
/*****************************************************************************
* libvlc_media_player.h: libvlc_media_player external API
*****************************************************************************
* Copyright (C) 1998-2009 the VideoLAN team
* $Id$
*
* Authors: Clément Stenac <zorglub@videolan.org>
* Jean-Paul Saman <jpsaman@videolan.org>
* Pierre d'Herbemont <pdherbemont@videolan.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
/**
* \file
* This file defines libvlc_media_player external API
*/
#ifndef VLC_LIBVLC_MEDIA_PLAYER_H
#define VLC_LIBVLC_MEDIA_PLAYER_H 1
/*****************************************************************************
* Media Player
*****************************************************************************/
/** \defgroup libvlc_media_player libvlc_media_player
* \ingroup libvlc
* LibVLC Media Player, object that let you play a media
* in a custom drawable
* @{
*/
typedef
struct
libvlc_media_player_t
libvlc_media_player_t
;
/**
* Description for video, audio tracks and subtitles. It contains
* id, name (description string) and pointer to next record.
*/
typedef
struct
libvlc_track_description_t
{
int
i_id
;
char
*
psz_name
;
struct
libvlc_track_description_t
*
p_next
;
}
libvlc_track_description_t
;
/**
* Description for audio output. It contains
* name, description and pointer to next record.
*/
typedef
struct
libvlc_audio_output_t
{
char
*
psz_name
;
char
*
psz_description
;
struct
libvlc_audio_output_t
*
p_next
;
}
libvlc_audio_output_t
;
/**
* Rectangle type for video geometry
*/
typedef
struct
libvlc_rectangle_t
{
int
top
,
left
;
int
bottom
,
right
;
}
libvlc_rectangle_t
;
/**
* Create an empty Media Player object
*
* \param p_libvlc_instance the libvlc instance in which the Media Player
* should be created.
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
libvlc_media_player_t
*
libvlc_media_player_new
(
libvlc_instance_t
*
,
libvlc_exception_t
*
);
/**
* Create a Media Player object from a Media
*
* \param p_md the media. Afterwards the p_md can be safely
* destroyed.
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
libvlc_media_player_t
*
libvlc_media_player_new_from_media
(
libvlc_media_t
*
,
libvlc_exception_t
*
);
/**
* Release a media_player after use
* Decrement the reference count of a media player object. If the
* reference count is 0, then libvlc_media_player_release() will
* release the media player object. If the media player object
* has been released, then it should not be used again.
*
* \param p_mi the Media Player to free
*/
VLC_PUBLIC_API
void
libvlc_media_player_release
(
libvlc_media_player_t
*
);
/**
* Retain a reference to a media player object. Use
* libvlc_media_player_release() to decrement reference count.
*
* \param p_mi media player object
*/
VLC_PUBLIC_API
void
libvlc_media_player_retain
(
libvlc_media_player_t
*
);
/**
* Set the media that will be used by the media_player. If any,
* previous md will be released.
*
* \param p_mi the Media Player
* \param p_md the Media. Afterwards the p_md can be safely
* destroyed.
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_media_player_set_media
(
libvlc_media_player_t
*
,
libvlc_media_t
*
,
libvlc_exception_t
*
);
/**
* Get the media used by the media_player.
*
* \param p_mi the Media Player
* \param p_e an initialized exception pointer
* \return the media associated with p_mi, or NULL if no
* media is associated
*/
VLC_PUBLIC_API
libvlc_media_t
*
libvlc_media_player_get_media
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Get the Event Manager from which the media player send event.
*
* \param p_mi the Media Player
* \param p_e an initialized exception pointer
* \return the event manager associated with p_mi
*/
VLC_PUBLIC_API
libvlc_event_manager_t
*
libvlc_media_player_event_manager
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* is_playing
*
* \param p_mi the Media Player
* \param p_e an initialized exception pointer
* \return 1 if the media player is playing, 0 otherwise
*/
VLC_PUBLIC_API
int
libvlc_media_player_is_playing
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Play
*
* \param p_mi the Media Player
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_media_player_play
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Pause
*
* \param p_mi the Media Player
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_media_player_pause
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Stop
*
* \param p_mi the Media Player
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_media_player_stop
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Set the agl handler where the media player should render its video output.
*
* \param p_mi the Media Player
* \param drawable the agl handler
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_media_player_set_nsobject
(
libvlc_media_player_t
*
p_mi
,
void
*
drawable
,
libvlc_exception_t
*
p_e
);
/**
* Get the agl handler previously set with libvlc_media_player_set_agl().
*
* \return the agl handler or 0 if none where set
*/
VLC_PUBLIC_API
uint32_t
libvlc_media_player_get_nsobject
(
libvlc_media_player_t
*
p_mi
);
/**
* Set the agl handler where the media player should render its video output.
*
* \param p_mi the Media Player
* \param drawable the agl handler
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_media_player_set_agl
(
libvlc_media_player_t
*
p_mi
,
uint32_t
drawable
,
libvlc_exception_t
*
p_e
);
/**
* Get the agl handler previously set with libvlc_media_player_set_agl().
*
* \return the agl handler or 0 if none where set
*/
VLC_PUBLIC_API
uint32_t
libvlc_media_player_get_agl
(
libvlc_media_player_t
*
p_mi
);
/**
* Set an X Window System drawable where the media player should render its
* video output. If LibVLC was built without X11 output support, then this has
* no effects.
*
* The specified identifier must correspond to an existing Input/Output class
* X11 window. Pixmaps are <b>not</b> supported. The caller shall ensure that
* the X11 server is the same as the one the VLC instance has been configured
* with.
* If XVideo is <b>not</b> used, it is assumed that the drawable has the
* following properties in common with the default X11 screen: depth, scan line
* pad, black pixel. This is a bug.
*
* \param p_mi the Media Player
* \param drawable the ID of the X window
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_media_player_set_xwindow
(
libvlc_media_player_t
*
p_mi
,
uint32_t
drawable
,
libvlc_exception_t
*
p_e
);
/**
* Get the X Window System window identifier previously set with
* libvlc_media_player_set_xwindow(). Note that this will return the identifier
* even if VLC is not currently using it (for instance if it is playing an
* audio-only input).
*
* \return an X window ID, or 0 if none where set.
*/
VLC_PUBLIC_API
uint32_t
libvlc_media_player_get_xwindow
(
libvlc_media_player_t
*
p_mi
);
/**
* Set a Win32/Win64 API window handle (HWND) where the media player should
* render its video output. If LibVLC was built without Win32/Win64 API output
* support, then this has no effects.
*
* \param p_mi the Media Player
* \param drawable windows handle of the drawable
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_media_player_set_hwnd
(
libvlc_media_player_t
*
p_mi
,
void
*
drawable
,
libvlc_exception_t
*
p_e
);
/**
* Get the Windows API window handle (HWND) previously set with
* libvlc_media_player_set_hwnd(). The handle will be returned even if LibVLC
* is not currently outputting any video to it.
*
* \return a window handle or NULL if there are none.
*/
VLC_PUBLIC_API
void
*
libvlc_media_player_get_hwnd
(
libvlc_media_player_t
*
p_mi
);
/** \bug This might go away ... to be replaced by a broader system */
/**
* Get the current movie length (in ms).
*
* \param p_mi the Media Player
* \param p_e an initialized exception pointer
* \return the movie length (in ms).
*/
VLC_PUBLIC_API
libvlc_time_t
libvlc_media_player_get_length
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Get the current movie time (in ms).
*
* \param p_mi the Media Player
* \param p_e an initialized exception pointer
* \return the movie time (in ms).
*/
VLC_PUBLIC_API
libvlc_time_t
libvlc_media_player_get_time
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Set the movie time (in ms).
*
* \param p_mi the Media Player
* \param the movie time (in ms).
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_media_player_set_time
(
libvlc_media_player_t
*
,
libvlc_time_t
,
libvlc_exception_t
*
);
/**
* Get movie position.
*
* \param p_mi the Media Player
* \param p_e an initialized exception pointer
* \return movie position
*/
VLC_PUBLIC_API
float
libvlc_media_player_get_position
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Set movie position.
*
* \param p_mi the Media Player
* \param p_e an initialized exception pointer
* \return movie position
*/
VLC_PUBLIC_API
void
libvlc_media_player_set_position
(
libvlc_media_player_t
*
,
float
,
libvlc_exception_t
*
);
/**
* Set movie chapter
*
* \param p_mi the Media Player
* \param i_chapter chapter number to play
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_media_player_set_chapter
(
libvlc_media_player_t
*
,
int
,
libvlc_exception_t
*
);
/**
* Get movie chapter
*
* \param p_mi the Media Player
* \param p_e an initialized exception pointer
* \return chapter number currently playing
*/
VLC_PUBLIC_API
int
libvlc_media_player_get_chapter
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Get movie chapter count
*
* \param p_mi the Media Player
* \param p_e an initialized exception pointer
* \return number of chapters in movie
*/
VLC_PUBLIC_API
int
libvlc_media_player_get_chapter_count
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
VLC_PUBLIC_API
int
libvlc_media_player_will_play
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Get title chapter count
*
* \param p_mi the Media Player
* \param i_title title
* \param p_e an initialized exception pointer
* \return number of chapters in title
*/
VLC_PUBLIC_API
int
libvlc_media_player_get_chapter_count_for_title
(
libvlc_media_player_t
*
,
int
,
libvlc_exception_t
*
);
/**
* Set movie title
*
* \param p_mi the Media Player
* \param i_title title number to play
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_media_player_set_title
(
libvlc_media_player_t
*
,
int
,
libvlc_exception_t
*
);
/**
* Get movie title
*
* \param p_mi the Media Player
* \param p_e an initialized exception pointer
* \return title number currently playing
*/
VLC_PUBLIC_API
int
libvlc_media_player_get_title
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Get movie title count
*
* \param p_mi the Media Player
* \param p_e an initialized exception pointer
* \return title number count
*/
VLC_PUBLIC_API
int
libvlc_media_player_get_title_count
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Set previous chapter
*
* \param p_mi the Media Player
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_media_player_previous_chapter
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Set next chapter
*
* \param p_mi the Media Player
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_media_player_next_chapter
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Get movie play rate
*
* \param p_mi the Media Player
* \param p_e an initialized exception pointer
* \return movie play rate
*/
VLC_PUBLIC_API
float
libvlc_media_player_get_rate
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Set movie play rate
*
* \param p_mi the Media Player
* \param movie play rate to set
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_media_player_set_rate
(
libvlc_media_player_t
*
,
float
,
libvlc_exception_t
*
);
/**
* Get current movie state
*
* \param p_mi the Media Player
* \param p_e an initialized exception pointer
* \return current movie state as libvlc_state_t
*/
VLC_PUBLIC_API
libvlc_state_t
libvlc_media_player_get_state
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Get movie fps rate
*
* \param p_mi the Media Player
* \param p_e an initialized exception pointer
* \return frames per second (fps) for this playing movie
*/
VLC_PUBLIC_API
float
libvlc_media_player_get_fps
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/** end bug */
/**
* Does this media player have a video output?
*
* \param p_md the media player
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
int
libvlc_media_player_has_vout
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Is this media player seekable?
*
* \param p_input the input
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
int
libvlc_media_player_is_seekable
(
libvlc_media_player_t
*
p_mi
,
libvlc_exception_t
*
p_e
);
/**
* Can this media player be paused?
*
* \param p_input the input
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
int
libvlc_media_player_can_pause
(
libvlc_media_player_t
*
p_mi
,
libvlc_exception_t
*
p_e
);
/**
* Release (free) libvlc_track_description_t
*
* \param p_track_description the structure to release
*/
VLC_PUBLIC_API
void
libvlc_track_description_release
(
libvlc_track_description_t
*
p_track_description
);
/** \defgroup libvlc_video libvlc_video
* \ingroup libvlc_media_player
* LibVLC Video handling
* @{
*/
/**
* Toggle fullscreen status on video output.
*
* \param p_mediaplayer the media player
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_toggle_fullscreen
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Enable or disable fullscreen on a video output.
*
* \param p_mediaplayer the media player
* \param b_fullscreen boolean for fullscreen status
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_set_fullscreen
(
libvlc_media_player_t
*
,
int
,
libvlc_exception_t
*
);
/**
* Get current fullscreen status.
*
* \param p_mediaplayer the media player
* \param p_e an initialized exception pointer
* \return the fullscreen status (boolean)
*/
VLC_PUBLIC_API
int
libvlc_get_fullscreen
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Get current video height.
*
* \param p_mediaplayer the media player
* \param p_e an initialized exception pointer
* \return the video height
*/
VLC_PUBLIC_API
int
libvlc_video_get_height
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Get current video width.
*
* \param p_mediaplayer the media player
* \param p_e an initialized exception pointer
* \return the video width
*/
VLC_PUBLIC_API
int
libvlc_video_get_width
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Get the current video scaling factor.
* See also libvlc_video_set_scale().
*
* \param p_mediaplayer the media player
* \return the currently configured zoom factor, or 0. if the video is set
* to fit to the output window/drawable automatically.
*/
VLC_PUBLIC_API
float
libvlc_video_get_scale
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
p_e
);
/**
* Set the video scaling factor. That is the ratio of the number of pixels on
* screen to the number of pixels in the original decoded video in each
* dimension. Zero is a special value; it will adjust the video to the output
* window/drawable (in windowed mode) or the entire screen.
*
* Note that not all video outputs support scaling.
*
* \param p_mediaplayer the media player
* \param i_factor the scaling factor, or zero
*/
VLC_PUBLIC_API
void
libvlc_video_set_scale
(
libvlc_media_player_t
*
,
float
,
libvlc_exception_t
*
p_e
);
/**
* Get current video aspect ratio.
*
* \param p_mediaplayer the media player
* \param p_e an initialized exception pointer
* \return the video aspect ratio
*/
VLC_PUBLIC_API
char
*
libvlc_video_get_aspect_ratio
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Set new video aspect ratio.
*
* \param p_mediaplayer the media player
* \param psz_aspect new video aspect-ratio
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_video_set_aspect_ratio
(
libvlc_media_player_t
*
,
char
*
,
libvlc_exception_t
*
);
/**
* Get current video subtitle.
*
* \param p_mediaplayer the media player
* \param p_e an initialized exception pointer
* \return the video subtitle selected
*/
VLC_PUBLIC_API
int
libvlc_video_get_spu
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Get the number of available video subtitles.
*
* \param p_mediaplayer the media player
* \param p_e an initialized exception pointer
* \return the number of available video subtitles
*/
VLC_PUBLIC_API
int
libvlc_video_get_spu_count
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Get the description of available video subtitles.
*
* \param p_mediaplayer the media player
* \param p_e an initialized exception pointer
* \return list containing description of available video subtitles
*/
VLC_PUBLIC_API
libvlc_track_description_t
*
libvlc_video_get_spu_description
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Set new video subtitle.
*
* \param p_mediaplayer the media player
* \param i_spu new video subtitle to select
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_video_set_spu
(
libvlc_media_player_t
*
,
int
,
libvlc_exception_t
*
);
/**
* Set new video subtitle file.
*
* \param p_mediaplayer the media player
* \param psz_subtitle new video subtitle file
* \param p_e an initialized exception pointer
* \return the success status (boolean)
*/
VLC_PUBLIC_API
int
libvlc_video_set_subtitle_file
(
libvlc_media_player_t
*
,
char
*
,
libvlc_exception_t
*
);
/**
* Get the description of available titles.
*
* \param p_mediaplayer the media player
* \param p_e an initialized exception pointer
* \return list containing description of available titles
*/
VLC_PUBLIC_API
libvlc_track_description_t
*
libvlc_video_get_title_description
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Get the description of available chapters for specific title.
*
* \param p_mediaplayer the media player
* \param i_title selected title
* \param p_e an initialized exception pointer
* \return list containing description of available chapter for title i_title
*/
VLC_PUBLIC_API
libvlc_track_description_t
*
libvlc_video_get_chapter_description
(
libvlc_media_player_t
*
,
int
,
libvlc_exception_t
*
);
/**
* Get current crop filter geometry.
*
* \param p_mediaplayer the media player
* \param p_e an initialized exception pointer
* \return the crop filter geometry
*/
VLC_PUBLIC_API
char
*
libvlc_video_get_crop_geometry
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Set new crop filter geometry.
*
* \param p_mediaplayer the media player
* \param psz_geometry new crop filter geometry
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_video_set_crop_geometry
(
libvlc_media_player_t
*
,
char
*
,
libvlc_exception_t
*
);
/**
* Toggle teletext transparent status on video output.
*
* \param p_mediaplayer the media player
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_toggle_teletext
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Get current teletext page requested.
*
* \param p_mediaplayer the media player
* \param p_e an initialized exception pointer
* \return the current teletext page requested.
*/
VLC_PUBLIC_API
int
libvlc_video_get_teletext
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Set new teletext page to retrieve.
*
* \param p_mediaplayer the media player
* \param i_page teletex page number requested
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_video_set_teletext
(
libvlc_media_player_t
*
,
int
,
libvlc_exception_t
*
);
/**
* Get number of available video tracks.
*
* \param p_mi media player
* \param p_e an initialized exception
* \return the number of available video tracks (int)
*/
VLC_PUBLIC_API
int
libvlc_video_get_track_count
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Get the description of available video tracks.
*
* \param p_mi media player
* \param p_e an initialized exception
* \return list with description of available video tracks
*/
VLC_PUBLIC_API
libvlc_track_description_t
*
libvlc_video_get_track_description
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Get current video track.
*
* \param p_mi media player
* \param p_e an initialized exception pointer
* \return the video track (int)
*/
VLC_PUBLIC_API
int
libvlc_video_get_track
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Set video track.
*
* \param p_mi media player
* \param i_track the track (int)
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_video_set_track
(
libvlc_media_player_t
*
,
int
,
libvlc_exception_t
*
);
/**
* Take a snapshot of the current video window.
*
* If i_width AND i_height is 0, original size is used.
* If i_width XOR i_height is 0, original aspect-ratio is preserved.
*
* \param p_mi media player instance
* \param psz_filepath the path where to save the screenshot to
* \param i_width the snapshot's width
* \param i_height the snapshot's height
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_video_take_snapshot
(
libvlc_media_player_t
*
,
const
char
*
,
unsigned
int
,
unsigned
int
,
libvlc_exception_t
*
);
/** @} video */
/** \defgroup libvlc_audio libvlc_audio
* \ingroup libvlc_media_player
* LibVLC Audio handling
* @{
*/
/**
* Audio device types
*/
typedef
enum
libvlc_audio_output_device_types_t
{
libvlc_AudioOutputDevice_Error
=
-
1
,
libvlc_AudioOutputDevice_Mono
=
1
,
libvlc_AudioOutputDevice_Stereo
=
2
,
libvlc_AudioOutputDevice_2F2R
=
4
,
libvlc_AudioOutputDevice_3F2R
=
5
,
libvlc_AudioOutputDevice_5_1
=
6
,
libvlc_AudioOutputDevice_6_1
=
7
,
libvlc_AudioOutputDevice_7_1
=
8
,
libvlc_AudioOutputDevice_SPDIF
=
10
}
libvlc_audio_output_device_types_t
;
/**
* Audio channels
*/
typedef
enum
libvlc_audio_output_channel_t
{
libvlc_AudioChannel_Error
=
-
1
,
libvlc_AudioChannel_Stereo
=
1
,
libvlc_AudioChannel_RStereo
=
2
,
libvlc_AudioChannel_Left
=
3
,
libvlc_AudioChannel_Right
=
4
,
libvlc_AudioChannel_Dolbys
=
5
}
libvlc_audio_output_channel_t
;
/**
* Get the list of available audio outputs
*
* \param p_instance libvlc instance
* \param p_e an initialized exception pointer
* \return list of available audio outputs, at the end free it with
* \see libvlc_audio_output_list_release \see libvlc_audio_output_t
*/
VLC_PUBLIC_API
libvlc_audio_output_t
*
libvlc_audio_output_list_get
(
libvlc_instance_t
*
,
libvlc_exception_t
*
);
/**
* Free the list of available audio outputs
*
* \param p_list list with audio outputs for release
*/
VLC_PUBLIC_API
void
libvlc_audio_output_list_release
(
libvlc_audio_output_t
*
);
/**
* Set the audio output.
* Change will be applied after stop and play.
*
* \param p_instance libvlc instance
* \param psz_name name of audio output,
* use psz_name of \see libvlc_audio_output_t
* \return true if function succeded
*/
VLC_PUBLIC_API
int
libvlc_audio_output_set
(
libvlc_instance_t
*
,
const
char
*
);
/**
* Get count of devices for audio output, these devices are hardware oriented
* like analor or digital output of sound card
*
* \param p_instance libvlc instance
* \param psz_audio_output - name of audio output, \see libvlc_audio_output_t
* \return number of devices
*/
VLC_PUBLIC_API
int
libvlc_audio_output_device_count
(
libvlc_instance_t
*
,
const
char
*
);
/**
* Get long name of device, if not available short name given
*
* \param p_instance libvlc instance
* \param psz_audio_output - name of audio output, \see libvlc_audio_output_t
* \param i_device device index
* \return long name of device
*/
VLC_PUBLIC_API
char
*
libvlc_audio_output_device_longname
(
libvlc_instance_t
*
,
const
char
*
,
int
);
/**
* Get id name of device
*
* \param p_instance libvlc instance
* \param psz_audio_output - name of audio output, \see libvlc_audio_output_t
* \param i_device device index
* \return id name of device, use for setting device, need to be free after use
*/
VLC_PUBLIC_API
char
*
libvlc_audio_output_device_id
(
libvlc_instance_t
*
,
const
char
*
,
int
);
/**
* Set device for using
*
* \param p_instance libvlc instance
* \param psz_audio_output - name of audio output, \see libvlc_audio_output_t
* \param psz_device_id device
*/
VLC_PUBLIC_API
void
libvlc_audio_output_device_set
(
libvlc_instance_t
*
,
const
char
*
,
const
char
*
);
/**
* Get current audio device type. Device type describes something like
* character of output sound - stereo sound, 2.1, 5.1 etc
*
* \param p_instance vlc instance
* \param p_e an initialized exception pointer
* \return the audio devices type \see libvlc_audio_output_device_types_t
*/
VLC_PUBLIC_API
int
libvlc_audio_output_get_device_type
(
libvlc_instance_t
*
,
libvlc_exception_t
*
);
/**
* Set current audio device type.
*
* \param p_instance vlc instance
* \param device_type the audio device type,
according to \see libvlc_audio_output_device_types_t
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_audio_output_set_device_type
(
libvlc_instance_t
*
,
int
,
libvlc_exception_t
*
);
/**
* Toggle mute status.
*
* \param p_instance libvlc instance
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_audio_toggle_mute
(
libvlc_instance_t
*
,
libvlc_exception_t
*
);
/**
* Get current mute status.
*
* \param p_instance libvlc instance
* \param p_e an initialized exception pointer
* \return the mute status (boolean)
*/
VLC_PUBLIC_API
int
libvlc_audio_get_mute
(
libvlc_instance_t
*
,
libvlc_exception_t
*
);
/**
* Set mute status.
*
* \param p_instance libvlc instance
* \param status If status is true then mute, otherwise unmute
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_audio_set_mute
(
libvlc_instance_t
*
,
int
,
libvlc_exception_t
*
);
/**
* Get current audio level.
*
* \param p_instance libvlc instance
* \param p_e an initialized exception pointer
* \return the audio level (int)
*/
VLC_PUBLIC_API
int
libvlc_audio_get_volume
(
libvlc_instance_t
*
,
libvlc_exception_t
*
);
/**
* Set current audio level.
*
* \param p_instance libvlc instance
* \param i_volume the volume (int)
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_audio_set_volume
(
libvlc_instance_t
*
,
int
,
libvlc_exception_t
*
);
/**
* Get number of available audio tracks.
*
* \param p_mi media player
* \param p_e an initialized exception
* \return the number of available audio tracks (int)
*/
VLC_PUBLIC_API
int
libvlc_audio_get_track_count
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Get the description of available audio tracks.
*
* \param p_mi media player
* \param p_e an initialized exception
* \return list with description of available audio tracks
*/
VLC_PUBLIC_API
libvlc_track_description_t
*
libvlc_audio_get_track_description
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Get current audio track.
*
* \param p_mi media player
* \param p_e an initialized exception pointer
* \return the audio track (int)
*/
VLC_PUBLIC_API
int
libvlc_audio_get_track
(
libvlc_media_player_t
*
,
libvlc_exception_t
*
);
/**
* Set current audio track.
*
* \param p_mi media player
* \param i_track the track (int)
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_audio_set_track
(
libvlc_media_player_t
*
,
int
,
libvlc_exception_t
*
);
/**
* Get current audio channel.
*
* \param p_instance vlc instance
* \param p_e an initialized exception pointer
* \return the audio channel \see libvlc_audio_output_channel_t
*/
VLC_PUBLIC_API
int
libvlc_audio_get_channel
(
libvlc_instance_t
*
,
libvlc_exception_t
*
);
/**
* Set current audio channel.
*
* \param p_instance vlc instance
* \param channel the audio channel, \see libvlc_audio_output_channel_t
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API
void
libvlc_audio_set_channel
(
libvlc_instance_t
*
,
int
,
libvlc_exception_t
*
);
/** @} audio */
/** @} media_player */
#endif
/* VLC_LIBVLC_MEDIA_PLAYER_H */
include/vlc/libvlc_structures.h
View file @
9e6f5af4
...
...
@@ -79,116 +79,10 @@ typedef int64_t libvlc_time_t;
* @{
*/
/* Meta Handling */
/** defgroup libvlc_meta libvlc_meta
* \ingroup libvlc_media
* LibVLC Media Meta
* @{
*/
typedef
enum
libvlc_meta_t
{
libvlc_meta_Title
,
libvlc_meta_Artist
,
libvlc_meta_Genre
,
libvlc_meta_Copyright
,
libvlc_meta_Album
,
libvlc_meta_TrackNumber
,
libvlc_meta_Description
,
libvlc_meta_Rating
,
libvlc_meta_Date
,
libvlc_meta_Setting
,
libvlc_meta_URL
,
libvlc_meta_Language
,
libvlc_meta_NowPlaying
,
libvlc_meta_Publisher
,
libvlc_meta_EncodedBy
,
libvlc_meta_ArtworkURL
,
libvlc_meta_TrackID
,
/* Add new meta types HERE */
}
libvlc_meta_t
;
/**@} */
typedef
struct
libvlc_media_t
libvlc_media_t
;
/**@} */
/*****************************************************************************
* Media Instance
*****************************************************************************/
/** \defgroup libvlc_media_player libvlc_media_player
* \ingroup libvlc
* LibVLC Media Instance handling
* @{
*/
typedef
struct
libvlc_media_player_t
libvlc_media_player_t
;
/**
* Note the order of libvlc_state_t enum must match exactly the order of
* @see mediacontrol_PlayerStatus, @see input_state_e enums,
* and VideoLAN.LibVLC.State (at bindings/cil/src/media.cs).
*
* Expected states by web plugins are:
* IDLE/CLOSE=0, OPENING=1, BUFFERING=2, PLAYING=3, PAUSED=4,
* STOPPING=5, ENDED=6, ERROR=7
*/
typedef
enum
libvlc_state_t
{
libvlc_NothingSpecial
=
0
,
libvlc_Opening
,
libvlc_Buffering
,
libvlc_Playing
,
libvlc_Paused
,
libvlc_Stopped
,
libvlc_Ended
,
libvlc_Error
}
libvlc_state_t
;
/**@} */
/*****************************************************************************
* Media List
*****************************************************************************/
/** \defgroup libvlc_media_list libvlc_media_list
* \ingroup libvlc
* LibVLC Media List handling
* @{
*/
typedef
struct
libvlc_media_list_t
libvlc_media_list_t
;
typedef
struct
libvlc_media_list_view_t
libvlc_media_list_view_t
;
/*****************************************************************************
* Media List Player
*****************************************************************************/
/** \defgroup libvlc_media_list_player libvlc_media_list_player
* \ingroup libvlc_media_list
* LibVLC Media List Player handling
* @{
*/
typedef
struct
libvlc_media_list_player_t
libvlc_media_list_player_t
;
/**@} libvlc_media_list_player */
/**@} libvlc_media_list */
/*****************************************************************************
* Media Library
*****************************************************************************/
/** \defgroup libvlc_media_library libvlc_media_library
* \ingroup libvlc
* LibVLC Media Library
* @{
*/
typedef
struct
libvlc_media_library_t
libvlc_media_library_t
;
/**@} */
/*****************************************************************************
* Playlist
*****************************************************************************/
...
...
@@ -209,88 +103,6 @@ typedef struct libvlc_playlist_item_t
/**@} */
/*****************************************************************************
* Media Player
*****************************************************************************/
/** \defgroup libvlc_media_player libvlc_media_player
* \ingroup libvlc
* LibVLC Media Player, object that let you play a media
* in a drawable
* @{
*/
/**
* Description for video, audio tracks and subtitles. It contains
* id, name (description string) and pointer to next record.
*/
typedef
struct
libvlc_track_description_t
{
int
i_id
;
char
*
psz_name
;
struct
libvlc_track_description_t
*
p_next
;
}
libvlc_track_description_t
;
/**@} */
/*****************************************************************************
* Audio
*****************************************************************************/
/** \defgroup libvlc_audio libvlc_audio
* \ingroup libvlc_media_player
* LibVLC Audio handling
* @{
*/
/**
* Description for audio output. It contains
* name, description and pointer to next record.
*/
typedef
struct
libvlc_audio_output_t
{
char
*
psz_name
;
char
*
psz_description
;
struct
libvlc_audio_output_t
*
p_next
;
}
libvlc_audio_output_t
;
/**@} */
/*****************************************************************************
* Video
*****************************************************************************/
/** \defgroup libvlc_video libvlc_video
* \ingroup libvlc_media_player
* LibVLC Video handling
* @{
*/
/**
* Rectangle type for video geometry
*/
typedef
struct
libvlc_rectangle_t
{
int
top
,
left
;
int
bottom
,
right
;
}
libvlc_rectangle_t
;
/**@} */
/*****************************************************************************
* Services/Media Discovery
*****************************************************************************/
/** \defgroup libvlc_media_discoverer libvlc_media_discoverer
* \ingroup libvlc
* LibVLC Media Discoverer
* @{
*/
typedef
struct
libvlc_media_discoverer_t
libvlc_media_discoverer_t
;
/**@} */
/*****************************************************************************
* Message log handling
...
...
include/vlc/vlc.h
View file @
9e6f5af4
...
...
@@ -38,9 +38,15 @@ extern "C" {
# endif
#include <vlc/libvlc_structures.h>
#include <vlc/libvlc_events.h>
#include <vlc/libvlc.h>
#include <vlc/libvlc_media.h>
#include <vlc/libvlc_media_player.h>
#include <vlc/libvlc_media_list.h>
#include <vlc/libvlc_media_list_view.h>
#include <vlc/libvlc_media_list_player.h>
#include <vlc/libvlc_media_library.h>
#include <vlc/libvlc_media_discoverer.h>
#include <vlc/libvlc_events.h>
#include <vlc/libvlc_vlm.h>
#include <vlc/deprecated.h>
...
...
src/Makefile.am
View file @
9e6f5af4
...
...
@@ -28,9 +28,16 @@ pkginclude_HEADERS = \
../include/vlc/vlc.h
\
../include/vlc/deprecated.h
\
../include/vlc/libvlc.h
\
../include/vlc/libvlc_structures.h
\
../include/vlc/libvlc_media_list.h
\
../include/vlc/libvlc_events.h
\
../include/vlc/libvlc_media_list.h
\
../include/vlc/libvlc_media.h
\
../include/vlc/libvlc_media_discoverer.h
\
../include/vlc/libvlc_media_library.h
\
../include/vlc/libvlc_media_list.h
\
../include/vlc/libvlc_media_list_player.h
\
../include/vlc/libvlc_media_list_view.h
\
../include/vlc/libvlc_media_player.h
\
../include/vlc/libvlc_structures.h
\
../include/vlc/libvlc_vlm.h
\
../include/vlc/mediacontrol.h
\
../include/vlc/mediacontrol_structures.h
\
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment