Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-2-2
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-2-2
Commits
a6bb43df
Commit
a6bb43df
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
982400e1
Changes
12
Hide 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 @
a6bb43df
...
...
@@ -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
*/
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
* Event manager that belongs to a libvlc object, and from whom events can
* be received.
*/
VLC_PUBLIC_API
int
libvlc_media_player_get_chapter_count_for_title
(
libvlc_media_player_t
*
,
int
,
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
;
/**
* Set movie title
*
* \param p_mi the Media Player
* \param i_title title number to play
* \param p_e an initialized exception pointer
* Callback function notification
* \param p_event the event triggering the callback
*/
VLC_PUBLIC_API
void
libvlc_media_player_set_title
(
libvlc_media_player_t
*
,
int
,
libvlc_exception_t
*
);
typedef
void
(
*
libvlc_callback_t
)(
const
libvlc_event_t
*
,
void
*
);
/**
*
Get movie title
*
Register for an event notification.
*
* \param p_mi the Media Player
* \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
* \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_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 count
*
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 count
*/
VLC_PUBLIC_API
int
libvlc_media_player_get_title_count
(
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
);
/**
*
Set previous chapter
*
Get an event's type name.
*
* \param p_mi the Media Player
* \param p_e an initialized exception pointer
* \param i_event_type the desired event
*/
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 @
a6bb43df
...
...
@@ -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
,
...
...
@@ -90,7 +90,7 @@ typedef enum libvlc_event_type_t {
libvlc_MediaPlayerSnapshotTaken
,
libvlc_MediaPlayerLengthChanged
,
/* New event types HERE */
}
libvlc_event_type_t
;
};
/**
* An Event
...
...
@@ -99,7 +99,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
;
...
...
@@ -209,21 +209,8 @@ typedef struct libvlc_event_t
libvlc_time_t
new_length
;
}
media_player_length_changed
;
}
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 @
a6bb43df
/*****************************************************************************
* 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 @
a6bb43df
/*****************************************************************************
* 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 @
a6bb43df
/*****************************************************************************
* 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 @
a6bb43df
...
...
@@ -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 @
a6bb43df
/*****************************************************************************
* 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 @
a6bb43df
/*****************************************************************************
* 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 @
a6bb43df
/*****************************************************************************
* 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 @
a6bb43df
...
...
@@ -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 @
a6bb43df
...
...
@@ -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 @
a6bb43df
...
...
@@ -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