/*****************************************************************************
* libvlc.h: libvlc_* new external API structures
*****************************************************************************
- * Copyright (C) 1998-2007 the VideoLAN team
+ * Copyright (C) 1998-2008 the VideoLAN team
* $Id $
*
* Authors: Filippo Carone <littlejohn@videolan.org>
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
-#ifndef _LIBVLC_STRUCTURES_H
-#define _LIBVLC_STRUCTURES_H 1
+#ifndef LIBVLC_STRUCTURES_H
+#define LIBVLC_STRUCTURES_H 1
-#include <vlc/vlc.h>
+/**
+ * \file
+ * This file defines libvlc_* new external API structures
+ */
+
+#include <stdint.h>
# ifdef __cplusplus
extern "C" {
* Exceptions
*****************************************************************************/
-/** defgroup libvlc_exception Exceptions
- * \ingroup libvlc
+/** \defgroup libvlc_exception libvlc_exception
+ * \ingroup libvlc_core
* LibVLC Exceptions handling
* @{
*/
/**@} */
/*****************************************************************************
- * Tree
- *****************************************************************************/
-/** defgroup libvlc_tree Tree
- * \ingroup libvlc
- * LibVLC Tree
- * @{
- */
-
-typedef void (*libvlc_retain_function)(void *);
-typedef void (*libvlc_release_function)(void *);
-
-typedef struct libvlc_tree_t libvlc_tree_t;
-
-/**@} */
-
-/*****************************************************************************
- * Tag
+ * Time
*****************************************************************************/
-/** defgroup libvlc_tag Tag
- * \ingroup libvlc
- * LibVLC Tag support in media descriptor
+/** \defgroup libvlc_time libvlc_time
+ * \ingroup libvlc_core
+ * LibVLC Time support in libvlc
* @{
*/
-typedef struct libvlc_tag_query_t libvlc_tag_query_t;
-typedef char * libvlc_tag_t;
+typedef int64_t libvlc_time_t;
/**@} */
/*****************************************************************************
* Media Descriptor
*****************************************************************************/
-/** defgroup libvlc_media_descriptor MediaDescriptor
+/** \defgroup libvlc_media libvlc_media
* \ingroup libvlc
* LibVLC Media Descriptor handling
* @{
*/
-/* Meta Handling */
-/** defgroup libvlc_meta Meta
- * \ingroup libvlc_media_descriptor
- * 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
-} libvlc_meta_t;
-
-/**@} */
-
-typedef struct libvlc_media_descriptor_t libvlc_media_descriptor_t;
/**@} */
-/*****************************************************************************
- * Media Instance
- *****************************************************************************/
-/** defgroup libvlc_media_instance MediaInstance
- * \ingroup libvlc
- * LibVLC Media Instance handling
- * @{
- */
-
-typedef struct libvlc_media_instance_t libvlc_media_instance_t;
-
-/**@} */
-
-/*****************************************************************************
- * Media List
- *****************************************************************************/
-/** defgroup libvlc_media_list MediaList
- * \ingroup libvlc
- * LibVLC Media List handling
- * @{
- */
-
-typedef struct libvlc_media_list_t libvlc_media_list_t;
-
-/**@} */
-
-/*****************************************************************************
- * Media List Player
- *****************************************************************************/
-/** defgroup libvlc_media_list_player MediaListPlayer
- * \ingroup libvlc
- * LibVLC Media List Player handling
- * @{
- */
-
-typedef struct libvlc_media_list_player_t libvlc_media_list_player_t;
-
-/**@} */
-
-/*****************************************************************************
- * Media Library
- *****************************************************************************/
-/** defgroup libvlc_media_library Media Library
- * \ingroup libvlc
- * LibVLC Media Library
- * @{
- */
-
-typedef struct libvlc_media_library_t libvlc_media_library_t;
-
-/**@} */
-
/*****************************************************************************
* Playlist
*****************************************************************************/
-/** defgroup libvlc_playlist Playlist
+/** \defgroup libvlc_playlist libvlc_playlist (Deprecated)
* \ingroup libvlc
- * LibVLC Playlist handling
+ * LibVLC Playlist handling (Deprecated)
+ * @deprecated Use media_list
* @{
*/
/**@} */
-/*****************************************************************************
- * Video
- *****************************************************************************/
-/** defgroup libvlc_video Video
- * \ingroup libvlc
- * LibVLC Video handling
- * @{
- */
-
-/**
-* Downcast to this general type as placeholder for a platform specific one, such as:
-* Drawable on X11,
-* CGrafPort on MacOSX,
-* HWND on win32
-*/
-typedef int libvlc_drawable_t;
-
-/**
-* 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 Media Discoverer
- * \ingroup libvlc
- * LibVLC Media Discoverer
- * @{
- */
-
-typedef struct libvlc_media_discoverer_t libvlc_media_discoverer_t;
-
-/**@} */
-
/*****************************************************************************
* Message log handling
*****************************************************************************/
-/** defgroup libvlc_log Log
- * \ingroup libvlc
+/** \defgroup libvlc_log libvlc_log
+ * \ingroup libvlc_core
* LibVLC Message Logging
* @{
*/
/**@} */
-/*****************************************************************************
- * Callbacks handling
- *****************************************************************************/
-
-/** defgroup libvlc_callbacks Callbacks
- * \ingroup libvlc
- * LibVLC Event Callbacks
- * @{
- */
-
-/**
- * Available events: (XXX: being reworked)
- * - libvlc_MediaInstanceReachedEnd
- */
-
-typedef enum libvlc_event_type_t {
- libvlc_MediaDescriptorMetaChanged,
- libvlc_MediaDescriptorSubItemAdded,
-
- libvlc_MediaInstanceReachedEnd,
-
- libvlc_MediaListItemAdded,
- libvlc_MediaListItemDeleted,
- libvlc_MediaListItemChanged,
-
-} libvlc_event_type_t;
-
-/**
- * An Event
- * \param type the even type
- * \param p_obj the sender object
- * \param u Event dependent content
- */
-
-typedef struct libvlc_event_t
-{
- libvlc_event_type_t type;
- void * p_obj;
- union event_type_specific
- {
- /* media descriptor */
- struct
- {
- libvlc_meta_t meta_type;
- } media_descriptor_meta_changed;
- struct
- {
- libvlc_media_descriptor_t * new_child;
- } media_descriptor_subitem_added;
-
- /* media list */
- struct
- {
- libvlc_media_descriptor_t * item;
- int index;
- } media_list_item_added;
- struct
- {
- libvlc_media_descriptor_t * item;
- int index;
- } media_list_item_deleted;
- struct
- {
- libvlc_media_descriptor_t * item;
- int index;
- } media_list_item_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 * );
-
-/**@} */
-
# ifdef __cplusplus
}
# endif