SOURCES_libvlc_control = \
control/libvlc_internal.h \
+ control/media_internal.h \
+ control/media_list_internal.h \
+ control/media_list_view_internal.h \
+ control/media_player_internal.h \
control/core.c \
control/log.c \
control/playlist.c \
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
-#include "libvlc_internal.h"
#include <vlc/libvlc.h>
+#include <vlc/libvlc_media.h>
+#include <vlc/libvlc_media_player.h>
+#include <vlc_common.h>
#include <vlc_input.h>
#include <vlc_aout.h>
+#include "libvlc_internal.h"
+#include "media_player_internal.h"
/*
* Remember to release the returned aout_instance_t since it is locked at
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
-#include "libvlc_internal.h"
-#include <vlc/libvlc.h>
#include <assert.h>
-#include "vlc_arrays.h"
+
+#include <vlc/libvlc.h>
+#include <vlc/libvlc_media.h>
+#include <vlc/libvlc_media_list.h>
+#include <vlc/libvlc_media_list_view.h>
+
+#include "media_list_view_internal.h"
+
//#define DEBUG_FLAT_VIEW
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
-#include "libvlc_internal.h"
#include <vlc/libvlc.h>
-#include <assert.h>
-#include "vlc_arrays.h"
+#include <vlc/libvlc_media.h>
+#include <vlc/libvlc_media_list.h>
+#include <vlc/libvlc_media_list_view.h>
+
+#include "media_list_internal.h"
+#include "media_list_view_internal.h"
//#define DEBUG_HIERARCHICAL_VIEW
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
-#include "libvlc_internal.h"
#include <vlc/libvlc.h>
-#include <assert.h>
-#include "vlc_arrays.h"
+#include <vlc/libvlc_media.h>
+#include <vlc/libvlc_media_list.h>
+#include <vlc/libvlc_media_list_view.h>
+
+#include "media_internal.h" // Abuse, could ans should be removed
+#include "media_list_internal.h" // Abuse, could ans should be removed
+#include "media_list_view_internal.h"
/* FIXME: This version is probably a bit overheaded, and we may want to store
* the items in a vlc_array_t to speed everything up */
# include "config.h"
#endif
-#include <vlc/vlc.h>
#include <vlc/libvlc_structures.h>
+#include <vlc/libvlc.h>
+#include <vlc/libvlc_media.h>
+#include <vlc/libvlc_events.h>
#include <vlc_common.h>
-#include <vlc_arrays.h>
-#include <vlc_input.h>
/***************************************************************************
* Internal creation and destruction functions
* Opaque structures for libvlc API
***************************************************************************/
-typedef int * libvlc_media_list_path_t; /* (Media List Player Internal) */
-
typedef enum libvlc_lock_state_t
{
libvlc_Locked,
struct libvlc_callback_entry_list_t *p_callback_list;
};
-struct libvlc_media_t
-{
- libvlc_event_manager_t * p_event_manager;
- int b_preparsed;
- input_item_t *p_input_item;
- int i_refcount;
- libvlc_instance_t *p_libvlc_instance;
- libvlc_state_t state;
- struct libvlc_media_list_t *p_subitems; /* A media descriptor can have
- * Sub item */
- void *p_user_data; /* Allows for VLC.framework to hook into media descriptor without creating a new VLCMedia object. */
-};
-
-struct libvlc_media_list_t
-{
- libvlc_event_manager_t * p_event_manager;
- libvlc_instance_t * p_libvlc_instance;
- int i_refcount;
- vlc_mutex_t object_lock;
- vlc_mutex_t refcount_lock;
- libvlc_media_t * p_md; /* The media from which the
- * mlist comes, if any. */
- vlc_array_t items;
-
- /* Other way to see that media list */
- /* Used in flat_media_list.c */
- libvlc_media_list_t * p_flat_mlist;
-
- /* This indicates if this media list is read-only
- * from a user point of view */
- bool b_read_only;
-};
-
-typedef libvlc_media_list_view_t * (*libvlc_media_list_view_constructor_func_t)( libvlc_media_list_t * p_mlist, libvlc_exception_t * p_e ) ;
-typedef void (*libvlc_media_list_view_release_func_t)( libvlc_media_list_view_t * p_mlv ) ;
-
-typedef int (*libvlc_media_list_view_count_func_t)( libvlc_media_list_view_t * p_mlv,
- libvlc_exception_t * ) ;
-
-typedef libvlc_media_t *
- (*libvlc_media_list_view_item_at_index_func_t)(
- libvlc_media_list_view_t * p_mlv,
- int index,
- libvlc_exception_t * ) ;
-
-typedef libvlc_media_list_view_t *
- (*libvlc_media_list_view_children_at_index_func_t)(
- libvlc_media_list_view_t * p_mlv,
- int index,
- libvlc_exception_t * ) ;
-
-/* A way to see a media list */
-struct libvlc_media_list_view_t
-{
- libvlc_event_manager_t * p_event_manager;
- libvlc_instance_t * p_libvlc_instance;
- int i_refcount;
- vlc_mutex_t object_lock;
-
- libvlc_media_list_t * p_mlist;
-
- struct libvlc_media_list_view_private_t * p_this_view_data;
-
- /* Accessors */
- libvlc_media_list_view_count_func_t pf_count;
- libvlc_media_list_view_item_at_index_func_t pf_item_at_index;
- libvlc_media_list_view_children_at_index_func_t pf_children_at_index;
-
- libvlc_media_list_view_constructor_func_t pf_constructor;
- libvlc_media_list_view_release_func_t pf_release;
-
- /* Notification callback */
- void (*pf_ml_item_added)(const libvlc_event_t *, libvlc_media_list_view_t *);
- void (*pf_ml_item_removed)(const libvlc_event_t *, libvlc_media_list_view_t *);
-};
-
-struct libvlc_media_player_t
-{
- int i_refcount;
- vlc_mutex_t object_lock;
- input_thread_t * p_input_thread;
- struct libvlc_instance_t * p_libvlc_instance; /* Parent instance */
- libvlc_media_t * p_md; /* current media descriptor */
- libvlc_event_manager_t * p_event_manager;
- struct
- {
- void *hwnd;
- void *nsobject;
- uint32_t xid;
- uint32_t agl;
- } drawable;
-};
-
-struct libvlc_media_library_t
-{
- libvlc_event_manager_t * p_event_manager;
- libvlc_instance_t * p_libvlc_instance;
- int i_refcount;
- libvlc_media_list_t * p_mlist;
-};
-
-struct libvlc_media_discoverer_t
-{
- libvlc_event_manager_t * p_event_manager;
- libvlc_instance_t * p_libvlc_instance;
- services_discovery_t * p_sd;
- libvlc_media_list_t * p_mlist;
- bool running;
- vlc_dictionary_t catname_to_submedialist;
-};
/*
* Event Handling
/***************************************************************************
* Other internal functions
***************************************************************************/
-input_thread_t *libvlc_get_input_thread(
- libvlc_media_player_t *,
- libvlc_exception_t * );
-
-/* Media Descriptor */
-libvlc_media_t * libvlc_media_new_from_input_item(
- libvlc_instance_t *, input_item_t *,
- libvlc_exception_t * );
-
-void libvlc_media_set_state(
- libvlc_media_t *, libvlc_state_t,
- libvlc_exception_t * );
-
-/* Media List */
-void _libvlc_media_list_add_media(
- libvlc_media_list_t * p_mlist,
- libvlc_media_t * p_md,
- libvlc_exception_t * p_e );
-
-void _libvlc_media_list_insert_media(
- libvlc_media_list_t * p_mlist,
- libvlc_media_t * p_md, int index,
- libvlc_exception_t * p_e );
-
-void _libvlc_media_list_remove_index(
- libvlc_media_list_t * p_mlist, int index,
- libvlc_exception_t * p_e );
-
-/* Media List View */
-libvlc_media_list_view_t * libvlc_media_list_view_new(
- libvlc_media_list_t * p_mlist,
- libvlc_media_list_view_count_func_t pf_count,
- libvlc_media_list_view_item_at_index_func_t pf_item_at_index,
- libvlc_media_list_view_children_at_index_func_t pf_children_at_index,
- libvlc_media_list_view_constructor_func_t pf_constructor,
- libvlc_media_list_view_release_func_t pf_release,
- void * this_view_data,
- libvlc_exception_t * p_e );
-
-void libvlc_media_list_view_set_ml_notification_callback(
- libvlc_media_list_view_t * p_mlv,
- void (*item_added)(const libvlc_event_t *, libvlc_media_list_view_t *),
- void (*item_removed)(const libvlc_event_t *, libvlc_media_list_view_t *) );
-
-void libvlc_media_list_view_will_delete_item(
- libvlc_media_list_view_t * p_mlv,
- libvlc_media_t * p_item, int index );
-
-void libvlc_media_list_view_item_deleted(
- libvlc_media_list_view_t * p_mlv,
- libvlc_media_t * p_item, int index );
-
-void libvlc_media_list_view_will_add_item (
- libvlc_media_list_view_t * p_mlv,
- libvlc_media_t * p_item, int index );
-
-void libvlc_media_list_view_item_added(
- libvlc_media_list_view_t * p_mlv,
- libvlc_media_t * p_item, int index );
/* Events */
libvlc_event_manager_t * libvlc_event_manager_new(
libvlc_event_manager_t * p_em,
libvlc_event_t * p_event );
-/* Media player - audio, video */
-libvlc_track_description_t * libvlc_get_track_description(
- libvlc_media_player_t *p_mi,
- const char *psz_variable,
- libvlc_exception_t *p_e );
-
/* Exception shorcuts */
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
-#include "libvlc_internal.h"
-#include "libvlc.h"
#include <vlc/libvlc.h>
+#include <vlc/libvlc_media.h>
+#include <vlc/libvlc_media_list.h> // For the subitems, here for convenience
+#include <vlc/libvlc_events.h>
+
+#include <vlc_common.h>
#include <vlc_input.h>
#include <vlc_meta.h>
+#include <vlc_playlist.h> /* For the preparser */
-/* For the preparser */
-#include <vlc_playlist.h>
+#include "libvlc.h"
+
+#include "libvlc_internal.h"
+#include "media_internal.h"
static const vlc_meta_type_t libvlc_to_vlc_meta[] =
{
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
-#include "libvlc_internal.h"
-#include <vlc/libvlc.h>
#include <assert.h>
-#include "vlc_services_discovery.h"
+
+#include <vlc/libvlc.h>
+#include <vlc/libvlc_media.h>
+#include <vlc/libvlc_media_list.h>
+#include <vlc/libvlc_media_discoverer.h>
+#include <vlc/libvlc_events.h>
+
+#include <vlc_services_discovery.h>
+
+#include "libvlc_internal.h"
+#include "media_internal.h" // libvlc_media_new_from_input_item()
+#include "media_list_internal.h" // _libvlc_media_list_add_media()
+
+struct libvlc_media_discoverer_t
+{
+ libvlc_event_manager_t * p_event_manager;
+ libvlc_instance_t * p_libvlc_instance;
+ services_discovery_t * p_sd;
+ libvlc_media_list_t * p_mlist;
+ bool running;
+ vlc_dictionary_t catname_to_submedialist;
+};
/*
* Private functions
--- /dev/null
+/*****************************************************************************
+ * libvlc_internal.h : Definition of opaque structures for libvlc exported API
+ * Also contains some internal utility functions
+ *****************************************************************************
+ * Copyright (C) 2005-2009 the VideoLAN team
+ * $Id$
+ *
+ * Authors: Clément Stenac <zorglub@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.
+ *****************************************************************************/
+
+#ifndef _LIBVLC_MEDIA_INTERNAL_H
+#define _LIBVLC_MEDIA_INTERNAL_H 1
+
+#include <vlc/libvlc.h>
+#include <vlc/libvlc_media.h>
+
+#include <vlc_common.h>
+#include <vlc_input.h>
+
+struct libvlc_media_t
+{
+ libvlc_event_manager_t * p_event_manager;
+ int b_preparsed;
+ input_item_t *p_input_item;
+ int i_refcount;
+ libvlc_instance_t *p_libvlc_instance;
+ libvlc_state_t state;
+ VLC_FORWARD_DECLARE_OBJECT(libvlc_media_list_t*) p_subitems; /* A media descriptor can have Sub items. This is the only dependancy we really have on media_list */
+ void *p_user_data;
+};
+
+/* Media Descriptor */
+libvlc_media_t * libvlc_media_new_from_input_item(
+ libvlc_instance_t *, input_item_t *,
+ libvlc_exception_t * );
+
+void libvlc_media_set_state(
+ libvlc_media_t *, libvlc_state_t,
+ libvlc_exception_t * );
+
+#endif
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
-#include "libvlc_internal.h"
+
#include <vlc/libvlc.h>
-#include "libvlc.h"
-#include "vlc_arrays.h"
+#include <vlc/libvlc_media.h>
+#include <vlc/libvlc_media_list.h>
+#include <vlc/libvlc_media_library.h>
+#include <vlc/libvlc_events.h>
+
+#include <vlc_common.h>
+
+#include "libvlc_internal.h"
+
+struct libvlc_media_library_t
+{
+ libvlc_event_manager_t * p_event_manager;
+ libvlc_instance_t * p_libvlc_instance;
+ int i_refcount;
+ libvlc_media_list_t * p_mlist;
+};
+
/*
* Private functions
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
-#include "libvlc_internal.h"
-#include <vlc/libvlc.h>
#include <assert.h>
-#include "vlc_arrays.h"
+
+#include <vlc/libvlc.h>
+#include <vlc/libvlc_media.h>
+#include <vlc/libvlc_media_list.h>
+#include <vlc/libvlc_events.h>
+
+#include <vlc_common.h>
+#include <vlc_input.h>
+
+#include "libvlc_internal.h"
+#include "media_internal.h" // libvlc_media_new_from_input_item()
+#include "media_list_internal.h"
typedef enum EventPlaceInTime {
EventWillHappen,
--- /dev/null
+/*****************************************************************************
+ * libvlc_internal.h : Definition of opaque structures for libvlc exported API
+ * Also contains some internal utility functions
+ *****************************************************************************
+ * Copyright (C) 2005-2009 the VideoLAN team
+ * $Id$
+ *
+ * Authors: Clément Stenac <zorglub@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.
+ *****************************************************************************/
+
+#ifndef _LIBVLC_MEDIA_LIST_INTERNAL_H
+#define _LIBVLC_MEDIA_LIST_INTERNAL_H 1
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <vlc/vlc.h>
+#include <vlc/libvlc_structures.h>
+#include <vlc/libvlc_media.h>
+
+#include <vlc_common.h>
+
+struct libvlc_media_list_t
+{
+ libvlc_event_manager_t * p_event_manager;
+ libvlc_instance_t * p_libvlc_instance;
+ int i_refcount;
+ vlc_mutex_t object_lock;
+ vlc_mutex_t refcount_lock;
+ libvlc_media_t * p_md; /* The media from which the
+ * mlist comes, if any. */
+ vlc_array_t items;
+
+ /* Other way to see that media list */
+ /* Used in flat_media_list.c */
+ libvlc_media_list_t * p_flat_mlist;
+
+ /* This indicates if this media list is read-only
+ * from a user point of view */
+ bool b_read_only;
+};
+
+/* Media List */
+void _libvlc_media_list_add_media(
+ libvlc_media_list_t * p_mlist,
+ libvlc_media_t * p_md,
+ libvlc_exception_t * p_e );
+
+void _libvlc_media_list_insert_media(
+ libvlc_media_list_t * p_mlist,
+ libvlc_media_t * p_md, int index,
+ libvlc_exception_t * p_e );
+
+void _libvlc_media_list_remove_index(
+ libvlc_media_list_t * p_mlist, int index,
+ libvlc_exception_t * p_e );
+
+#endif
#ifndef _LIBVLC_MEDIA_LIST_PATH_H
#define _LIBVLC_MEDIA_LIST_PATH_H 1
+typedef int * libvlc_media_list_path_t; /* (Media List Player Internal) */
+
/**************************************************************************
* path_empty (Media List Player Internal)
**************************************************************************/
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
-#include "libvlc_internal.h"
+
#include <vlc/libvlc.h>
+#include <vlc/libvlc_media.h>
+#include <vlc/libvlc_media_list.h>
+#include <vlc/libvlc_media_player.h>
+#include <vlc/libvlc_media_list_player.h>
+#include <vlc/libvlc_events.h>
+
+#include "libvlc_internal.h"
+
+#include "media_internal.h" // Abuse, could and should be removed
#include "media_list_path.h"
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
-#include "libvlc_internal.h"
#include <vlc/libvlc.h>
-#include <assert.h>
-#include "vlc_arrays.h"
+#include <vlc/libvlc_media.h>
+#include <vlc/libvlc_media_list.h>
+#include <vlc/libvlc_media_list_view.h>
+#include <vlc/libvlc_events.h>
+
+#include "libvlc_internal.h" // Abuse, could and should be removed
+
+#include "media_internal.h" // Abuse, could and should be removed
+#include "media_list_internal.h" // Abuse, could and should be removed
+#include "media_list_view_internal.h"
//#define DEBUG_FLAT_LIST
--- /dev/null
+/*****************************************************************************
+ * libvlc_internal.h : Definition of opaque structures for libvlc exported API
+ * Also contains some internal utility functions
+ *****************************************************************************
+ * Copyright (C) 2005-2009 the VideoLAN team
+ * $Id$
+ *
+ * Authors: Clément Stenac <zorglub@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.
+ *****************************************************************************/
+
+#ifndef LIBVLC_MEDIA_LIST_VIEW_INTERNAL_H
+#define LIBVLC_MEDIA_LIST_VIEW_INTERNAL_H 1
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <vlc/vlc.h>
+#include <vlc/libvlc_structures.h>
+#include <vlc/libvlc_media_list.h>
+
+#include <vlc_common.h>
+
+typedef libvlc_media_list_view_t * (*libvlc_media_list_view_constructor_func_t)( libvlc_media_list_t * p_mlist, libvlc_exception_t * p_e ) ;
+typedef void (*libvlc_media_list_view_release_func_t)( libvlc_media_list_view_t * p_mlv ) ;
+
+typedef int (*libvlc_media_list_view_count_func_t)( libvlc_media_list_view_t * p_mlv,
+ libvlc_exception_t * ) ;
+
+typedef libvlc_media_t *
+ (*libvlc_media_list_view_item_at_index_func_t)(
+ libvlc_media_list_view_t * p_mlv,
+ int index,
+ libvlc_exception_t * ) ;
+
+typedef libvlc_media_list_view_t *
+ (*libvlc_media_list_view_children_at_index_func_t)(
+ libvlc_media_list_view_t * p_mlv,
+ int index,
+ libvlc_exception_t * ) ;
+
+/* A way to see a media list */
+struct libvlc_media_list_view_t
+{
+ libvlc_event_manager_t * p_event_manager;
+ libvlc_instance_t * p_libvlc_instance;
+ int i_refcount;
+ vlc_mutex_t object_lock;
+
+ libvlc_media_list_t * p_mlist;
+
+ struct libvlc_media_list_view_private_t * p_this_view_data;
+
+ /* Accessors */
+ libvlc_media_list_view_count_func_t pf_count;
+ libvlc_media_list_view_item_at_index_func_t pf_item_at_index;
+ libvlc_media_list_view_children_at_index_func_t pf_children_at_index;
+
+ libvlc_media_list_view_constructor_func_t pf_constructor;
+ libvlc_media_list_view_release_func_t pf_release;
+
+ /* Notification callback */
+ void (*pf_ml_item_added)(const libvlc_event_t *, libvlc_media_list_view_t *);
+ void (*pf_ml_item_removed)(const libvlc_event_t *, libvlc_media_list_view_t *);
+};
+
+/* Media List View */
+libvlc_media_list_view_t * libvlc_media_list_view_new(
+ libvlc_media_list_t * p_mlist,
+ libvlc_media_list_view_count_func_t pf_count,
+ libvlc_media_list_view_item_at_index_func_t pf_item_at_index,
+ libvlc_media_list_view_children_at_index_func_t pf_children_at_index,
+ libvlc_media_list_view_constructor_func_t pf_constructor,
+ libvlc_media_list_view_release_func_t pf_release,
+ void * this_view_data,
+ libvlc_exception_t * p_e );
+
+void libvlc_media_list_view_set_ml_notification_callback(
+ libvlc_media_list_view_t * p_mlv,
+ void (*item_added)(const libvlc_event_t *, libvlc_media_list_view_t *),
+ void (*item_removed)(const libvlc_event_t *, libvlc_media_list_view_t *) );
+
+void libvlc_media_list_view_will_delete_item(
+ libvlc_media_list_view_t * p_mlv,
+ libvlc_media_t * p_item, int index );
+
+void libvlc_media_list_view_item_deleted(
+ libvlc_media_list_view_t * p_mlv,
+ libvlc_media_t * p_item, int index );
+
+void libvlc_media_list_view_will_add_item (
+ libvlc_media_list_view_t * p_mlv,
+ libvlc_media_t * p_item, int index );
+
+void libvlc_media_list_view_item_added(
+ libvlc_media_list_view_t * p_mlv,
+ libvlc_media_t * p_item, int index );
+
+#endif
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
-#include "libvlc_internal.h"
+#include <assert.h>
#include <vlc/libvlc.h>
+#include <vlc/libvlc_media.h>
+#include <vlc/libvlc_events.h>
+
#include <vlc_demux.h>
#include <vlc_input.h>
#include <vlc_vout.h>
+
#include "libvlc.h"
-#include <assert.h>
+
+#include "libvlc_internal.h"
+#include "media_internal.h" // libvlc_media_set_state()
+#include "media_player_internal.h"
static int
input_seekable_changed( vlc_object_t * p_this, char const * psz_cmd,
--- /dev/null
+/*****************************************************************************
+ * libvlc_internal.h : Definition of opaque structures for libvlc exported API
+ * Also contains some internal utility functions
+ *****************************************************************************
+ * Copyright (C) 2005-2009 the VideoLAN team
+ * $Id$
+ *
+ * Authors: Clément Stenac <zorglub@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.
+ *****************************************************************************/
+
+#ifndef _LIBVLC_MEDIA_PLAYER_INTERNAL_H
+#define _LIBVLC_MEDIA_PLAYER_INTERNAL_H 1
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <vlc/vlc.h>
+#include <vlc/libvlc_structures.h>
+#include <vlc/libvlc_media.h>
+
+struct libvlc_media_player_t
+{
+ int i_refcount;
+ vlc_mutex_t object_lock;
+ input_thread_t * p_input_thread;
+ struct libvlc_instance_t * p_libvlc_instance; /* Parent instance */
+ libvlc_media_t * p_md; /* current media descriptor */
+ libvlc_event_manager_t * p_event_manager;
+ struct
+ {
+ void *hwnd;
+ void *nsobject;
+ uint32_t xid;
+ uint32_t agl;
+ } drawable;
+};
+
+/* Media player - audio, video */
+input_thread_t *libvlc_get_input_thread(libvlc_media_player_t *, libvlc_exception_t * );
+
+
+libvlc_track_description_t * libvlc_get_track_description(
+ libvlc_media_player_t *p_mi,
+ const char *psz_variable,
+ libvlc_exception_t *p_e );
+
+#endif
#endif
#include "mediacontrol_internal.h"
#include "libvlc_internal.h"
+#include "media_player_internal.h"
#include <vlc/mediacontrol.h>
#include <vlc/libvlc.h>
#include <vlc_vout.h>
+#include <vlc_input.h>
#include <vlc_osd.h>
#include <vlc_block.h>
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
-#include "libvlc_internal.h"
-
#include <vlc/libvlc.h>
+#include <vlc/libvlc_media.h>
+#include <vlc/libvlc_media_player.h>
+
+#include <vlc_common.h>
#include <vlc_input.h>
#include <vlc_vout.h>
+#include "media_player_internal.h"
+
/*
* Remember to release the returned vout_thread_t.
*/
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
-#include "libvlc_internal.h"
-
#include <vlc/libvlc.h>
+#include <vlc/libvlc_vlm.h>
#include <vlc_es.h>
#include <vlc_input.h>
#include <vlc_vlm.h>
+#include "libvlc_internal.h"
+
#if 0
/* local function to be used in libvlc_vlm_show_media only */
static char* recurse_answer( char* psz_prefix, vlm_message_t *p_answer ) {