]> git.sesse.net Git - vlc/commitdiff
- added controlled symbol export support for win32. Now, all visible symbols in libvl...
authorDamien Fouilleul <damienf@videolan.org>
Sat, 3 Feb 2007 22:01:20 +0000 (22:01 +0000)
committerDamien Fouilleul <damienf@videolan.org>
Sat, 3 Feb 2007 22:01:20 +0000 (22:01 +0000)
This also pave the way for using the visibility feature in GCC 4, adding controlled symbols export for UNIX/MacOS X as well.

configure.ac
include/vlc/libvlc.h
include/vlc/vlc.h
include/vlc_common.h
src/Makefile.am
src/vlc.c

index e3877bad7a339e5c1e1fa87f1cb5caa50f2c468c..7220164f1cc6fb5e02538fd1f058cccfad70c933 100644 (file)
@@ -5602,6 +5602,7 @@ AS_IF([test "${SYS}" = "mingw32" || test "${enable_libtool}" != "no"], [
   AC_DEFINE(HAVE_SHARED_LIBVLC, 1, [Define to 1 if libvlc is built as a shared library.])
   FILE_LIBVLC_DLL="!define LIBVLC_DLL libvlc.dll"
   VLC_ADD_PLUGINS([${BUILTINS}])
+  VLC_ADD_CPPFLAGS([libvlc],[-DDLL_EXPORT])
   BUILTINS=""
 ], [
   LDFLAGS_vlc="${LDFLAGS_vlc} ${LDFLAGS_libvlc}"
index 125d1a4345a34afe1be1841cbb7b65c10eb6479c..1850175572185a737c983b1e89fec7764c06bc5b 100644 (file)
@@ -61,28 +61,28 @@ typedef struct libvlc_exception_t libvlc_exception_t;
  * an exception structure.
  * \param p_exception the exception to initialize
  */
-void libvlc_exception_init( libvlc_exception_t *p_exception );
+VLC_PUBLIC_API void libvlc_exception_init( libvlc_exception_t *p_exception );
 
 /**
  * Has an exception been raised ?
  * \param p_exception the exception to query
  * \return 0 if no exception raised, 1 else
  */
-int libvlc_exception_raised( libvlc_exception_t *p_exception );
+VLC_PUBLIC_API int libvlc_exception_raised( libvlc_exception_t *p_exception );
 
 /**
  * Raise an exception
  * \param p_exception the exception to raise
  * \param psz_message the exception message
  */
-void libvlc_exception_raise( libvlc_exception_t *p_exception, const char *psz_format, ... );
+VLC_PUBLIC_API void libvlc_exception_raise( libvlc_exception_t *p_exception, const char *psz_format, ... );
 
 /**
  * Clear an exception object so it can be reused.
  * The exception object must be initialized
  * \param p_exception the exception to clear
  */
-void libvlc_exception_clear( libvlc_exception_t * );
+VLC_PUBLIC_API void libvlc_exception_clear( libvlc_exception_t * );
 
 /**
  * Get exception message
@@ -90,7 +90,7 @@ void libvlc_exception_clear( libvlc_exception_t * );
  * \return the exception message or NULL if not applicable (exception not raised
  * for example)
  */
-char* libvlc_exception_get_message( libvlc_exception_t *p_exception );
+VLC_PUBLIC_API char* libvlc_exception_get_message( libvlc_exception_t *p_exception );
 
 /**@} */
 
@@ -113,7 +113,7 @@ typedef struct libvlc_instance_t libvlc_instance_t;
  * \param argv command-line-type arguments
  * \param exception an initialized exception pointer
  */
-libvlc_instance_t * libvlc_new( int , char **, libvlc_exception_t *);
+VLC_PUBLIC_API libvlc_instance_t * libvlc_new( int , char **, libvlc_exception_t *);
 
 /**
  * Returns a libvlc instance identifier for legacy APIs. Use of this
@@ -121,13 +121,13 @@ libvlc_instance_t * libvlc_new( int , char **, libvlc_exception_t *);
  * new API.
  * \param p_instance the instance
  */
-int libvlc_get_vlc_id( libvlc_instance_t *p_instance );
+VLC_PUBLIC_API int libvlc_get_vlc_id( libvlc_instance_t *p_instance );
 
 /**
  * Destroy a libvlc instance.
  * \param p_instance the instance to destroy
  */
-void libvlc_destroy( libvlc_instance_t *, libvlc_exception_t * );
+VLC_PUBLIC_API void libvlc_destroy( libvlc_instance_t *, libvlc_exception_t * );
 
 /** @}*/
 
@@ -143,8 +143,8 @@ void libvlc_destroy( libvlc_instance_t *, libvlc_exception_t * );
 /**
  * Set loop variable
  */
-void libvlc_playlist_loop( libvlc_instance_t* , vlc_bool_t,
-                           libvlc_exception_t * );
+VLC_PUBLIC_API void libvlc_playlist_loop( libvlc_instance_t* , vlc_bool_t,
+                                          libvlc_exception_t * );
 
 /**
  * Start playing. You can give some additionnal playlist item options
@@ -156,15 +156,15 @@ void libvlc_playlist_loop( libvlc_instance_t* , vlc_bool_t,
  * \param ppsz_options the options to add to the item
  * \param p_exception an initialized exception
  */
-void libvlc_playlist_play( libvlc_instance_t*, int, int, char **,
-                           libvlc_exception_t * );
+VLC_PUBLIC_API void libvlc_playlist_play( libvlc_instance_t*, int, int, char **,
+                                          libvlc_exception_t * );
 
 /**
  * Pause a running playlist, resume if it was stopped
  * \param p_instance the instance to pause
  * \param p_exception an initialized exception
  */
-void libvlc_playlist_pause( libvlc_instance_t *, libvlc_exception_t * );
+VLC_PUBLIC_API void libvlc_playlist_pause( libvlc_instance_t *, libvlc_exception_t * );
 
 /**
  * Checks if the playlist is running
@@ -172,7 +172,7 @@ void libvlc_playlist_pause( libvlc_instance_t *, libvlc_exception_t * );
  * \param p_exception an initialized exception
  * \return 0 if the playlist is stopped or paused, 1 if it is running
  */
-int libvlc_playlist_isplaying( libvlc_instance_t *, libvlc_exception_t * );
+VLC_PUBLIC_API int libvlc_playlist_isplaying( libvlc_instance_t *, libvlc_exception_t * );
 
 /**
  * Get the number of items in the playlist
@@ -180,35 +180,35 @@ int libvlc_playlist_isplaying( libvlc_instance_t *, libvlc_exception_t * );
  * \param p_exception an initialized exception
  * \return the number of items
  */
-int libvlc_playlist_items_count( libvlc_instance_t *, libvlc_exception_t * );
+VLC_PUBLIC_API int libvlc_playlist_items_count( libvlc_instance_t *, libvlc_exception_t * );
 
 /**
  * Stop playing
  * \param p_instance the instance to stop
  * \param p_exception an initialized exception
  */
-void libvlc_playlist_stop( libvlc_instance_t *, libvlc_exception_t * );
+VLC_PUBLIC_API void libvlc_playlist_stop( libvlc_instance_t *, libvlc_exception_t * );
 
 /**
  * Go to next playlist item (starts playback if it was stopped)
  * \param p_instance the instance to use
  * \param p_exception an initialized exception
  */
-void libvlc_playlist_next( libvlc_instance_t *, libvlc_exception_t * );
+VLC_PUBLIC_API void libvlc_playlist_next( libvlc_instance_t *, libvlc_exception_t * );
 
 /**
  * Go to previous playlist item (starts playback if it was stopped)
  * \param p_instance the instance to use
  * \param p_exception an initialized exception
  */
-void libvlc_playlist_prev( libvlc_instance_t *, libvlc_exception_t * );
+VLC_PUBLIC_API void libvlc_playlist_prev( libvlc_instance_t *, libvlc_exception_t * );
 
 /**
  * Remove all playlist items
  * \param p_instance the instance
  * \param p_exception an initialized exception
  */
-void libvlc_playlist_clear( libvlc_instance_t *, libvlc_exception_t * );
+VLC_PUBLIC_API void libvlc_playlist_clear( libvlc_instance_t *, libvlc_exception_t * );
 
 /**
  * Add an item at the end of the playlist
@@ -218,8 +218,8 @@ void libvlc_playlist_clear( libvlc_instance_t *, libvlc_exception_t * );
  * \param psz_name a name that you might want to give or NULL
  * \return the identifier of the new item
  */
-int libvlc_playlist_add( libvlc_instance_t *, const char *, const char *,
-                         libvlc_exception_t * );
+VLC_PUBLIC_API int libvlc_playlist_add( libvlc_instance_t *, const char *, const char *,
+                                        libvlc_exception_t * );
 
 /**
  * Add an item at the end of the playlist, with additional input options
@@ -231,9 +231,9 @@ int libvlc_playlist_add( libvlc_instance_t *, const char *, const char *,
  * \param p_exception an initialized exception
  * \return the identifier of the new item
  */
-int libvlc_playlist_add_extended( libvlc_instance_t *, const char *,
-                                  const char *, int, const char **,
-                                  libvlc_exception_t * );
+VLC_PUBLIC_API int libvlc_playlist_add_extended( libvlc_instance_t *, const char *,
+                                                 const char *, int, const char **,
+                                                 libvlc_exception_t * );
 
 /**
  * Delete the playlist item with the given ID.
@@ -242,8 +242,8 @@ int libvlc_playlist_add_extended( libvlc_instance_t *, const char *,
  * \param p_exception an initialized exception
  * \return
  */
-int libvlc_playlist_delete_item( libvlc_instance_t *, int,
-                                 libvlc_exception_t * );
+VLC_PUBLIC_API int libvlc_playlist_delete_item( libvlc_instance_t *, int,
+                                                libvlc_exception_t * );
 
 typedef struct libvlc_input_t libvlc_input_t;
 
@@ -252,8 +252,8 @@ typedef struct libvlc_input_t libvlc_input_t;
  * \param p_exception an initialized excecption
  * \return an input object
  */
-libvlc_input_t *libvlc_playlist_get_input( libvlc_instance_t *,
-                                           libvlc_exception_t * );
+VLC_PUBLIC_API libvlc_input_t *libvlc_playlist_get_input( libvlc_instance_t *,
+                                                          libvlc_exception_t * );
 
 /** @}*/
 
@@ -269,18 +269,18 @@ libvlc_input_t *libvlc_playlist_get_input( libvlc_instance_t *,
 /** Free an input object
  * \param p_input the input to free
  */
-void libvlc_input_free( libvlc_input_t * );
+VLC_PUBLIC_API void libvlc_input_free( libvlc_input_t * );
 
 /// \bug This might go away ... to be replaced by a broader system
-vlc_int64_t libvlc_input_get_length     ( libvlc_input_t *, libvlc_exception_t *);
-vlc_int64_t libvlc_input_get_time       ( libvlc_input_t *, libvlc_exception_t *);
-void        libvlc_input_set_time       ( libvlc_input_t *, vlc_int64_t, libvlc_exception_t *);
-float       libvlc_input_get_position   ( libvlc_input_t *, libvlc_exception_t *);
-void        libvlc_input_set_position   ( libvlc_input_t *, float, libvlc_exception_t *);
-vlc_bool_t  libvlc_input_will_play      ( libvlc_input_t *, libvlc_exception_t *);
-float       libvlc_input_get_rate       ( libvlc_input_t *, libvlc_exception_t *);
-void        libvlc_input_set_rate       ( libvlc_input_t *, float, libvlc_exception_t *);
-int         libvlc_input_get_state      ( libvlc_input_t *, libvlc_exception_t *);
+VLC_PUBLIC_API vlc_int64_t libvlc_input_get_length     ( libvlc_input_t *, libvlc_exception_t *);
+VLC_PUBLIC_API vlc_int64_t libvlc_input_get_time       ( libvlc_input_t *, libvlc_exception_t *);
+VLC_PUBLIC_API void        libvlc_input_set_time       ( libvlc_input_t *, vlc_int64_t, libvlc_exception_t *);
+VLC_PUBLIC_API float       libvlc_input_get_position   ( libvlc_input_t *, libvlc_exception_t *);
+VLC_PUBLIC_API void        libvlc_input_set_position   ( libvlc_input_t *, float, libvlc_exception_t *);
+VLC_PUBLIC_API vlc_bool_t  libvlc_input_will_play      ( libvlc_input_t *, libvlc_exception_t *);
+VLC_PUBLIC_API float       libvlc_input_get_rate       ( libvlc_input_t *, libvlc_exception_t *);
+VLC_PUBLIC_API void        libvlc_input_set_rate       ( libvlc_input_t *, float, libvlc_exception_t *);
+VLC_PUBLIC_API int         libvlc_input_get_state      ( libvlc_input_t *, libvlc_exception_t *);
 
 /** @} */
 
@@ -313,15 +313,15 @@ libvlc_rectangle_t;
  * \param p_input the input
  * \param p_exception an initialized exception
  */
-vlc_bool_t  libvlc_input_has_vout       ( libvlc_input_t *, libvlc_exception_t *);
-float       libvlc_input_get_fps        ( libvlc_input_t *, libvlc_exception_t *);
+VLC_PUBLIC_API vlc_bool_t  libvlc_input_has_vout( libvlc_input_t *, libvlc_exception_t *);
+VLC_PUBLIC_API float       libvlc_input_get_fps( libvlc_input_t *, libvlc_exception_t *);
 
 /**
  * Toggle fullscreen status on video output
  * \param p_input the input
  * \param p_exception an initialized exception
  */
-void libvlc_toggle_fullscreen( libvlc_input_t *, libvlc_exception_t * );
+VLC_PUBLIC_API void libvlc_toggle_fullscreen( libvlc_input_t *, libvlc_exception_t * );
 
 /**
  * Enable or disable fullscreen on a video output
@@ -329,7 +329,7 @@ void libvlc_toggle_fullscreen( libvlc_input_t *, libvlc_exception_t * );
  * \param b_fullscreen boolean for fullscreen status
  * \param p_exception an initialized exception
  */
-void libvlc_set_fullscreen( libvlc_input_t *, int, libvlc_exception_t * );
+VLC_PUBLIC_API void libvlc_set_fullscreen( libvlc_input_t *, int, libvlc_exception_t * );
 
 /**
  * Get current fullscreen status
@@ -337,7 +337,7 @@ void libvlc_set_fullscreen( libvlc_input_t *, int, libvlc_exception_t * );
  * \param p_exception an initialized exception
  * \return the fullscreen status (boolean)
  */
-int libvlc_get_fullscreen( libvlc_input_t *, libvlc_exception_t * );
+VLC_PUBLIC_API int libvlc_get_fullscreen( libvlc_input_t *, libvlc_exception_t * );
 
 /**
  * Get current video height
@@ -345,7 +345,7 @@ int libvlc_get_fullscreen( libvlc_input_t *, libvlc_exception_t * );
  * \param p_exception an initialized exception
  * \return the video height
  */
-int libvlc_video_get_height( libvlc_input_t *, libvlc_exception_t * );
+VLC_PUBLIC_API int libvlc_video_get_height( libvlc_input_t *, libvlc_exception_t * );
 
 /**
  * Get current video width
@@ -353,7 +353,7 @@ int libvlc_video_get_height( libvlc_input_t *, libvlc_exception_t * );
  * \param p_exception an initialized exception
  * \return the video width
  */
-int libvlc_video_get_width( libvlc_input_t *, libvlc_exception_t * );
+VLC_PUBLIC_API int libvlc_video_get_width( libvlc_input_t *, libvlc_exception_t * );
 
 /**
  * Get current video aspect ratio
@@ -361,7 +361,7 @@ int libvlc_video_get_width( libvlc_input_t *, libvlc_exception_t * );
  * \param p_exception an initialized exception
  * \return the video aspect ratio
  */
-char *libvlc_video_get_aspect_ratio( libvlc_input_t *, libvlc_exception_t * );
+VLC_PUBLIC_API char *libvlc_video_get_aspect_ratio( libvlc_input_t *, libvlc_exception_t * );
 
 /**
  * Set new video aspect ratio
@@ -369,7 +369,7 @@ char *libvlc_video_get_aspect_ratio( libvlc_input_t *, libvlc_exception_t * );
  * \param psz_aspect new video aspect-ratio
  * \param p_exception an initialized exception
  */
-void libvlc_video_set_aspect_ratio( libvlc_input_t *, char *, libvlc_exception_t * );
+VLC_PUBLIC_API void libvlc_video_set_aspect_ratio( libvlc_input_t *, char *, libvlc_exception_t * );
 
 /**
  * Get current crop filter geometry
@@ -377,7 +377,7 @@ void libvlc_video_set_aspect_ratio( libvlc_input_t *, char *, libvlc_exception_t
  * \param p_exception an initialized exception
  * \return the crop filter geometry
  */
-char *libvlc_video_get_crop_geometry( libvlc_input_t *, libvlc_exception_t * );
+VLC_PUBLIC_API char *libvlc_video_get_crop_geometry( libvlc_input_t *, libvlc_exception_t * );
 
 /**
  * Set new crop filter geometry
@@ -385,7 +385,7 @@ char *libvlc_video_get_crop_geometry( libvlc_input_t *, libvlc_exception_t * );
  * \param psz_geometry new crop filter geometry
  * \param p_exception an initialized exception
  */
-void libvlc_video_set_crop_geometry( libvlc_input_t *, char *, libvlc_exception_t * );
+VLC_PUBLIC_API void libvlc_video_set_crop_geometry( libvlc_input_t *, char *, libvlc_exception_t * );
 
 /**
  * Take a snapshot of the current video window
@@ -393,9 +393,9 @@ void libvlc_video_set_crop_geometry( libvlc_input_t *, char *, libvlc_exception_
  * \param psz_filepath the path where to save the screenshot to
  * \param p_exception an initialized exception
  */
-void libvlc_video_take_snapshot( libvlc_input_t *, char *, libvlc_exception_t * );
+VLC_PUBLIC_API void libvlc_video_take_snapshot( libvlc_input_t *, char *, libvlc_exception_t * );
 
-int libvlc_video_destroy( libvlc_input_t *, libvlc_exception_t *);
+VLC_PUBLIC_API int libvlc_video_destroy( libvlc_input_t *, libvlc_exception_t *);
 
 /**
  * Resize the current video output window
@@ -405,7 +405,7 @@ int libvlc_video_destroy( libvlc_input_t *, libvlc_exception_t *);
  * \param p_exception an initialized exception
  * \return the success status (boolean)
  */
-void libvlc_video_resize( libvlc_input_t *, int, int, libvlc_exception_t *);
+VLC_PUBLIC_API void libvlc_video_resize( libvlc_input_t *, int, int, libvlc_exception_t *);
 
 /**
  * change the parent for the current the video output
@@ -414,7 +414,7 @@ void libvlc_video_resize( libvlc_input_t *, int, int, libvlc_exception_t *);
  * \param p_exception an initialized exception
  * \return the success status (boolean)
  */
-int libvlc_video_reparent( libvlc_input_t *, libvlc_drawable_t, libvlc_exception_t * );
+VLC_PUBLIC_API int libvlc_video_reparent( libvlc_input_t *, libvlc_drawable_t, libvlc_exception_t * );
 
 /**
  * Set the default video output parent
@@ -423,7 +423,7 @@ int libvlc_video_reparent( libvlc_input_t *, libvlc_drawable_t, libvlc_exception
  * \param drawable the new parent window (Drawable on X11, CGrafPort on MacOSX, HWND on Win32)
  * \param p_exception an initialized exception
  */
-void libvlc_video_set_parent( libvlc_instance_t *, libvlc_drawable_t, libvlc_exception_t * );
+VLC_PUBLIC_API void libvlc_video_set_parent( libvlc_instance_t *, libvlc_drawable_t, libvlc_exception_t * );
 
 /**
  * Set the default video output size
@@ -433,7 +433,7 @@ void libvlc_video_set_parent( libvlc_instance_t *, libvlc_drawable_t, libvlc_exc
  * \param height new height for video drawable
  * \param p_exception an initialized exception
  */
-void libvlc_video_set_size( libvlc_instance_t *, int, int, libvlc_exception_t * );
+VLC_PUBLIC_API void libvlc_video_set_size( libvlc_instance_t *, int, int, libvlc_exception_t * );
 
 /**
  * Set the default video output viewport for a windowless video output (MacOS X only)
@@ -443,7 +443,7 @@ void libvlc_video_set_size( libvlc_instance_t *, int, int, libvlc_exception_t *
  * \param clip coordinates within video drawable
  * \param p_exception an initialized exception
  */
-void libvlc_video_set_viewport( libvlc_instance_t *, const libvlc_rectangle_t *, const libvlc_rectangle_t *, libvlc_exception_t * );
+VLC_PUBLIC_API void libvlc_video_set_viewport( libvlc_instance_t *, const libvlc_rectangle_t *, const libvlc_rectangle_t *, libvlc_exception_t * );
 
 
 /** @} */
@@ -467,7 +467,7 @@ void libvlc_video_set_viewport( libvlc_instance_t *, const libvlc_rectangle_t *,
  * \param p_exception an initialized exception
  * \return void
  */
-void libvlc_audio_toggle_mute( libvlc_instance_t *, libvlc_exception_t * );
+VLC_PUBLIC_API void libvlc_audio_toggle_mute( libvlc_instance_t *, libvlc_exception_t * );
 
 /**
  * Get current mute status
@@ -475,7 +475,7 @@ void libvlc_audio_toggle_mute( libvlc_instance_t *, libvlc_exception_t * );
  * \param p_exception an initialized exception
  * \return the mute status (boolean)
  */
-vlc_bool_t libvlc_audio_get_mute( libvlc_instance_t *, libvlc_exception_t * );
+VLC_PUBLIC_API vlc_bool_t libvlc_audio_get_mute( libvlc_instance_t *, libvlc_exception_t * );
 
 /**
  * Set mute status
@@ -484,7 +484,7 @@ vlc_bool_t libvlc_audio_get_mute( libvlc_instance_t *, libvlc_exception_t * );
  * \param p_exception an initialized exception
  * \return void
  */
-void libvlc_audio_set_mute( libvlc_instance_t *, vlc_bool_t , libvlc_exception_t * );
+VLC_PUBLIC_API void libvlc_audio_set_mute( libvlc_instance_t *, vlc_bool_t , libvlc_exception_t * );
 
 /**
  * Get current audio level
@@ -492,7 +492,7 @@ void libvlc_audio_set_mute( libvlc_instance_t *, vlc_bool_t , libvlc_exception_t
  * \param p_exception an initialized exception
  * \return the audio level (int)
  */
-int libvlc_audio_get_volume( libvlc_instance_t *, libvlc_exception_t * );
+VLC_PUBLIC_API int libvlc_audio_get_volume( libvlc_instance_t *, libvlc_exception_t * );
 
 /**
  * Set current audio level
@@ -500,7 +500,7 @@ int libvlc_audio_get_volume( libvlc_instance_t *, libvlc_exception_t * );
  * \param i_volume the volume (int)
  * \param p_exception an initialized exception
  */
-void libvlc_audio_set_volume( libvlc_instance_t *, int, libvlc_exception_t *);
+VLC_PUBLIC_API void libvlc_audio_set_volume( libvlc_instance_t *, int, libvlc_exception_t *);
 
 /**
 +  * Get current audio track
@@ -508,7 +508,7 @@ void libvlc_audio_set_volume( libvlc_instance_t *, int, libvlc_exception_t *);
 +  * \param p_exception an initialized exception
 +  * \return the audio track (int)
 +  */
-int libvlc_audio_get_track( libvlc_input_t *, libvlc_exception_t * );
+VLC_PUBLIC_API int libvlc_audio_get_track( libvlc_input_t *, libvlc_exception_t * );
 
 /**
  * Set current audio track
@@ -516,7 +516,7 @@ int libvlc_audio_get_track( libvlc_input_t *, libvlc_exception_t * );
  * \param i_track the track (int)
  * \param p_exception an initialized exception
  */
-void libvlc_audio_set_track( libvlc_input_t *, int, libvlc_exception_t * );
+VLC_PUBLIC_API void libvlc_audio_set_track( libvlc_input_t *, int, libvlc_exception_t * );
 
 /**
  * Get current audio channel
@@ -524,7 +524,7 @@ void libvlc_audio_set_track( libvlc_input_t *, int, libvlc_exception_t * );
  * \param p_exception an initialized exception
  * \return the audio channel (int)
  */
-int libvlc_audio_get_channel( libvlc_instance_t *, libvlc_exception_t * );
+VLC_PUBLIC_API int libvlc_audio_get_channel( libvlc_instance_t *, libvlc_exception_t * );
 
 /**
  * Set current audio channel
@@ -532,7 +532,7 @@ int libvlc_audio_get_channel( libvlc_instance_t *, libvlc_exception_t * );
  * \param i_channel the audio channel (int)
  * \param p_exception an initialized exception
  */
-void libvlc_audio_set_channel( libvlc_instance_t *, int, libvlc_exception_t * );
+VLC_PUBLIC_API void libvlc_audio_set_channel( libvlc_instance_t *, int, libvlc_exception_t * );
 
 /** @} */
 
@@ -549,8 +549,8 @@ void libvlc_audio_set_channel( libvlc_instance_t *, int, libvlc_exception_t * );
  * \param b_loop Should this broadcast be played in loop ?
  * \param p_exception an initialized exception
  */
-void libvlc_vlm_add_broadcast( libvlc_instance_t *, char *, char *, char* ,
-                               int, char **, int, int, libvlc_exception_t * );
+VLC_PUBLIC_API void libvlc_vlm_add_broadcast( libvlc_instance_t *, char *, char *, char* ,
+                                              int, char **, int, int, libvlc_exception_t * );
 
 /**
  * Delete a media (vod or broadcast)
@@ -558,7 +558,7 @@ void libvlc_vlm_add_broadcast( libvlc_instance_t *, char *, char *, char* ,
  * \param psz_name the media to delete
  * \param p_exception an initialized exception
  */
-void libvlc_vlm_del_media( libvlc_instance_t *, char *, libvlc_exception_t * );
+VLC_PUBLIC_API void libvlc_vlm_del_media( libvlc_instance_t *, char *, libvlc_exception_t * );
 
 /**
  * Enable or disable a media (vod or broadcast)
@@ -567,8 +567,8 @@ void libvlc_vlm_del_media( libvlc_instance_t *, char *, libvlc_exception_t * );
  * \param b_enabled the new status
  * \param p_exception an initialized exception
  */
-void libvlc_vlm_set_enabled( libvlc_instance_t *, char *, int,
-                             libvlc_exception_t *);
+VLC_PUBLIC_API void libvlc_vlm_set_enabled( libvlc_instance_t *, char *, int,
+                                            libvlc_exception_t *);
 
 /**
  * Set the output for a media
@@ -577,8 +577,8 @@ void libvlc_vlm_set_enabled( libvlc_instance_t *, char *, int,
  * \param psz_output the output MRL (the parameter to the "sout" variable)
  * \param p_exception an initialized exception
  */
-void libvlc_vlm_set_output( libvlc_instance_t *, char *, char*,
-                            libvlc_exception_t *);
+VLC_PUBLIC_API void libvlc_vlm_set_output( libvlc_instance_t *, char *, char*,
+                                           libvlc_exception_t *);
 
 /**
  * Set a media's input MRL. This will delete all existing inputs and
@@ -588,8 +588,8 @@ void libvlc_vlm_set_output( libvlc_instance_t *, char *, char*,
  * \param psz_input the input MRL
  * \param p_exception an initialized exception
  */
-void libvlc_vlm_set_input( libvlc_instance_t *, char *, char*,
-                           libvlc_exception_t *);
+VLC_PUBLIC_API void libvlc_vlm_set_input( libvlc_instance_t *, char *, char*,
+                                          libvlc_exception_t *);
 
 /**
  * Set output for a media
@@ -598,8 +598,8 @@ void libvlc_vlm_set_input( libvlc_instance_t *, char *, char*,
  * \param b_loop the new status
  * \param p_exception an initialized exception
  */
-void libvlc_vlm_set_loop( libvlc_instance_t *, char *, int,
-                          libvlc_exception_t *);
+VLC_PUBLIC_API void libvlc_vlm_set_loop( libvlc_instance_t *, char *, int,
+                                         libvlc_exception_t *);
 
 /**
  * Edit the parameters of a media. This will delete all existing inputs and
@@ -614,8 +614,8 @@ void libvlc_vlm_set_loop( libvlc_instance_t *, char *, int,
  * \param b_loop Should this broadcast be played in loop ?
  * \param p_exception an initialized exception
  */
-void libvlc_vlm_change_media( libvlc_instance_t *, char *, char *, char* ,
-                              int, char **, int, int, libvlc_exception_t * );
+VLC_PUBLIC_API void libvlc_vlm_change_media( libvlc_instance_t *, char *, char *, char* ,
+                                             int, char **, int, int, libvlc_exception_t * );
 
 /**
  * Plays the named broadcast.
@@ -623,7 +623,7 @@ void libvlc_vlm_change_media( libvlc_instance_t *, char *, char *, char* ,
  * \param psz_name the name of the broadcast
  * \param p_exception an initialized exception
  */
-void libvlc_vlm_play_media ( libvlc_instance_t *, char *, libvlc_exception_t * );
+VLC_PUBLIC_API void libvlc_vlm_play_media ( libvlc_instance_t *, char *, libvlc_exception_t * );
 
 /**
  * Stops the named broadcast.
@@ -631,7 +631,7 @@ void libvlc_vlm_play_media ( libvlc_instance_t *, char *, libvlc_exception_t * )
  * \param psz_name the name of the broadcast
  * \param p_exception an initialized exception
  */ 
-void libvlc_vlm_stop_media ( libvlc_instance_t *, char *, libvlc_exception_t * );
+VLC_PUBLIC_API void libvlc_vlm_stop_media ( libvlc_instance_t *, char *, libvlc_exception_t * );
 
 /**
  * Pauses the named broadcast.
@@ -639,7 +639,7 @@ void libvlc_vlm_stop_media ( libvlc_instance_t *, char *, libvlc_exception_t * )
  * \param psz_name the name of the broadcast
  * \param p_exception an initialized exception
  */ 
-void libvlc_vlm_pause_media( libvlc_instance_t *, char *, libvlc_exception_t * );
+VLC_PUBLIC_API void libvlc_vlm_pause_media( libvlc_instance_t *, char *, libvlc_exception_t * );
     
 /**
  * Seeks in the named broadcast.
@@ -648,8 +648,8 @@ void libvlc_vlm_pause_media( libvlc_instance_t *, char *, libvlc_exception_t * )
  * \param f_percentage the percentage to seek to
  * \param p_exception an initialized exception
  */ 
-void libvlc_vlm_seek_media( libvlc_instance_t *, char *,
-                            float, libvlc_exception_t * );
+VLC_PUBLIC_API void libvlc_vlm_seek_media( libvlc_instance_t *, char *,
+                                           float, libvlc_exception_t * );
    
 /**
  * Return information of the named broadcast.
@@ -657,19 +657,19 @@ void libvlc_vlm_seek_media( libvlc_instance_t *, char *,
  * \param psz_name the name of the broadcast
  * \param p_exception an initialized exception
  */ 
-char* libvlc_vlm_show_media( libvlc_instance_t *, char *, libvlc_exception_t * );
+VLC_PUBLIC_API char* libvlc_vlm_show_media( libvlc_instance_t *, char *, libvlc_exception_t * );
 
 #define LIBVLC_VLM_GET_MEDIA_ATTRIBUTE( attr, returnType, getType, default)\
 returnType libvlc_vlm_get_media_## attr( libvlc_instance_t *, \
                         char *, int , libvlc_exception_t * );
 
-LIBVLC_VLM_GET_MEDIA_ATTRIBUTE( position, float, Float, -1);
-LIBVLC_VLM_GET_MEDIA_ATTRIBUTE( time, int, Integer, -1);
-LIBVLC_VLM_GET_MEDIA_ATTRIBUTE( length, int, Integer, -1);
-LIBVLC_VLM_GET_MEDIA_ATTRIBUTE( rate, int, Integer, -1);
-LIBVLC_VLM_GET_MEDIA_ATTRIBUTE( title, int, Integer, 0);
-LIBVLC_VLM_GET_MEDIA_ATTRIBUTE( chapter, int, Integer, 0);
-LIBVLC_VLM_GET_MEDIA_ATTRIBUTE( seekable, int, Bool, 0);
+VLC_PUBLIC_API LIBVLC_VLM_GET_MEDIA_ATTRIBUTE( position, float, Float, -1);
+VLC_PUBLIC_API LIBVLC_VLM_GET_MEDIA_ATTRIBUTE( time, int, Integer, -1);
+VLC_PUBLIC_API LIBVLC_VLM_GET_MEDIA_ATTRIBUTE( length, int, Integer, -1);
+VLC_PUBLIC_API LIBVLC_VLM_GET_MEDIA_ATTRIBUTE( rate, int, Integer, -1);
+VLC_PUBLIC_API LIBVLC_VLM_GET_MEDIA_ATTRIBUTE( title, int, Integer, 0);
+VLC_PUBLIC_API LIBVLC_VLM_GET_MEDIA_ATTRIBUTE( chapter, int, Integer, 0);
+VLC_PUBLIC_API LIBVLC_VLM_GET_MEDIA_ATTRIBUTE( seekable, int, Bool, 0);
 
 #undef LIBVLC_VLM_GET_MEDIA_ATTRIBUTE
 
@@ -707,35 +707,37 @@ typedef struct libvlc_log_message_t
  * \param p_instance libvlc instance
  * \param exception an initialized exception pointer
  */
-unsigned libvlc_get_log_verbosity( const libvlc_instance_t *p_instance, libvlc_exception_t *p_e );
+VLC_PUBLIC_API unsigned libvlc_get_log_verbosity( const libvlc_instance_t *p_instance,
+                                                  libvlc_exception_t *p_e );
 
 /**
  * Set the VLC messaging verbosity level
  * \param p_log libvlc log instance
  * \param exception an initialized exception pointer
  */
-void libvlc_set_log_verbosity( libvlc_instance_t *p_instance, unsigned level, libvlc_exception_t *p_e );
+VLC_PUBLIC_API void libvlc_set_log_verbosity( libvlc_instance_t *p_instance, unsigned level,
+                                              libvlc_exception_t *p_e );
 
 /**
  * Open an instance to VLC message log 
  * \param p_instance libvlc instance
  * \param exception an initialized exception pointer
  */
-libvlc_log_t *libvlc_log_open( const libvlc_instance_t *, libvlc_exception_t *);
+VLC_PUBLIC_API libvlc_log_t *libvlc_log_open( const libvlc_instance_t *, libvlc_exception_t *);
 
 /**
  * Close an instance of VLC message log 
  * \param p_log libvlc log instance
  * \param exception an initialized exception pointer
  */
-void libvlc_log_close( libvlc_log_t *, libvlc_exception_t *);
+VLC_PUBLIC_API void libvlc_log_close( libvlc_log_t *, libvlc_exception_t *);
 
 /**
  * Returns the number of messages in log
  * \param p_log libvlc log instance
  * \param exception an initialized exception pointer
  */
-unsigned libvlc_log_count( const libvlc_log_t *, libvlc_exception_t *);
+VLC_PUBLIC_API unsigned libvlc_log_count( const libvlc_log_t *, libvlc_exception_t *);
 
 /**
  * Clear all messages in log
@@ -743,28 +745,28 @@ unsigned libvlc_log_count( const libvlc_log_t *, libvlc_exception_t *);
  * \param p_log libvlc log instance
  * \param exception an initialized exception pointer
  */
-void libvlc_log_clear( libvlc_log_t *, libvlc_exception_t *);
+VLC_PUBLIC_API void libvlc_log_clear( libvlc_log_t *, libvlc_exception_t *);
 
 /**
  * Allocate and returns a new iterator to messages in log
  * \param p_log libvlc log instance
  * \param exception an initialized exception pointer
  */
-libvlc_log_iterator_t *libvlc_log_get_iterator( const libvlc_log_t *, libvlc_exception_t *);
+VLC_PUBLIC_API libvlc_log_iterator_t *libvlc_log_get_iterator( const libvlc_log_t *, libvlc_exception_t *);
 
 /**
  * Releases a previoulsy allocated iterator
  * \param p_log libvlc log iterator 
  * \param exception an initialized exception pointer
  */
-void libvlc_log_iterator_free( libvlc_log_iterator_t *p_iter, libvlc_exception_t *p_e );
+VLC_PUBLIC_API void libvlc_log_iterator_free( libvlc_log_iterator_t *p_iter, libvlc_exception_t *p_e );
 
 /**
  * Returns whether log iterator has more messages 
  * \param p_log libvlc log iterator
  * \param exception an initialized exception pointer
  */
-int libvlc_log_iterator_has_next( const libvlc_log_iterator_t *p_iter, libvlc_exception_t *p_e );
+VLC_PUBLIC_API int libvlc_log_iterator_has_next( const libvlc_log_iterator_t *p_iter, libvlc_exception_t *p_e );
 
 /**
  * Returns next log message
@@ -772,9 +774,9 @@ int libvlc_log_iterator_has_next( const libvlc_log_iterator_t *p_iter, libvlc_ex
  * \param p_log libvlc log iterator
  * \param exception an initialized exception pointer
  */
-libvlc_log_message_t *libvlc_log_iterator_next( libvlc_log_iterator_t *p_iter,
-                                                struct libvlc_log_message_t *buffer,
-                                                libvlc_exception_t *p_e );
+VLC_PUBLIC_API libvlc_log_message_t *libvlc_log_iterator_next( libvlc_log_iterator_t *p_iter,
+                                                               struct libvlc_log_message_t *buffer,
+                                                               libvlc_exception_t *p_e );
 
 /** @} */
 
index df11673c0ad10cb577ddabf1d4b16d1ed8a0393c..b19b3896c9b9181058b73ce7b711ea8777675d4f 100644 (file)
@@ -155,6 +155,15 @@ struct vlc_list_t
 #   include "vlc_common.h"
 #endif
 
+/*****************************************************************************
+ * Shared library Export macros
+ *****************************************************************************/
+#if defined(WIN32) && defined(DLL_EXPORT)
+#  define VLC_PUBLIC_API extern __declspec(dllexport)
+#else
+#  define VLC_PUBLIC_API extern
+#endif
+
 /*****************************************************************************
  * Exported libvlc API
  *****************************************************************************/
@@ -165,49 +174,49 @@ struct vlc_list_t
  *
  * \return a string containing the libvlc version
  */
-char const * VLC_Version ( void );
+VLC_PUBLIC_API char const * VLC_Version ( void );
 
 /**
  * Retrieve libvlc compile time
  *
  * \return a string containing the libvlc compile time
  */
-char const * VLC_CompileTime ( void );
+VLC_PUBLIC_API char const * VLC_CompileTime ( void );
 
 /**
  * Retrieve the username of the libvlc builder
  *
  * \return a string containing the username of the libvlc builder
  */
-char const * VLC_CompileBy ( void );
+VLC_PUBLIC_API char const * VLC_CompileBy ( void );
 
 /**
  * Retrieve the host of the libvlc builder
  *
  * \return a string containing the host of the libvlc builder
  */
-char const * VLC_CompileHost ( void );
+VLC_PUBLIC_API char const * VLC_CompileHost ( void );
 
 /**
  * Retrieve the domain name of the host of the libvlc builder
  *
  * \return a string containing the domain name of the host of the libvlc builder
  */
-char const * VLC_CompileDomain ( void );
+VLC_PUBLIC_API char const * VLC_CompileDomain ( void );
 
 /**
  * Retrieve libvlc compiler version
  *
  * \return a string containing the libvlc compiler version
  */
-char const * VLC_Compiler ( void );
+VLC_PUBLIC_API char const * VLC_Compiler ( void );
 
 /**
  * Retrieve libvlc changeset
  *
  * \return a string containing the libvlc subversion changeset
  */
-char const * VLC_Changeset ( void );
+VLC_PUBLIC_API char const * VLC_Changeset ( void );
 
 /**
  * Return an error string
@@ -215,7 +224,7 @@ char const * VLC_Changeset ( void );
  * \param i_err an error code
  * \return an error string
  */
-char const * VLC_Error ( int i_err );
+VLC_PUBLIC_API char const * VLC_Error ( int i_err );
 
 #endif /* __LIBVLC__ */
 
@@ -227,7 +236,7 @@ char const * VLC_Error ( int i_err );
  *
  * \return vlc object id or an error code
  */
-int     VLC_Create( void );
+VLC_PUBLIC_API int     VLC_Create( void );
 
 /**
  * Initialize a vlc_t structure
@@ -243,7 +252,7 @@ int     VLC_Create( void );
  *  \param ppsz_argv an array of arguments
  *  \return VLC_SUCCESS on success
  */
-int     VLC_Init( int, int, char *[] );
+VLC_PUBLIC_API int     VLC_Init( int, int, char *[] );
 
 /**
  * Add an interface
@@ -259,7 +268,7 @@ int     VLC_Init( int, int, char *[] );
  * \param b_play start playing when the interface is done loading
  * \return VLC_SUCCESS on success
  */
-int     VLC_AddIntf( int, char const *, vlc_bool_t, vlc_bool_t );
+VLC_PUBLIC_API int     VLC_AddIntf( int, char const *, vlc_bool_t, vlc_bool_t );
 
 /**
  * Ask vlc to die
@@ -270,7 +279,7 @@ int     VLC_AddIntf( int, char const *, vlc_bool_t, vlc_bool_t );
  * \param i_object a vlc object id
  * \return VLC_SUCCESS on success
  */
-int     VLC_Die( int );
+VLC_PUBLIC_API int     VLC_Die( int );
 
 /**
  * Clean up all the intf, playlist, vout and aout
@@ -283,7 +292,7 @@ int     VLC_Die( int );
  * \param i_object a vlc object id
  * \return VLC_SUCCESS on success
  */
-int     VLC_CleanUp( int );
+VLC_PUBLIC_API int     VLC_CleanUp( int );
 
 /**
  * Destroy all threads and the VLC object
@@ -295,7 +304,7 @@ int     VLC_CleanUp( int );
  * \param i_object a vlc object id
  * \return VLC_SUCCESS on success
  */
-int     VLC_Destroy( int );
+VLC_PUBLIC_API int     VLC_Destroy( int );
 
 /**
  * Set a VLC variable
@@ -309,7 +318,7 @@ int     VLC_Destroy( int );
  * \param value a vlc_value_t structure
  * \return VLC_SUCCESS on success
  */
-int     VLC_VariableSet( int, char const *, vlc_value_t );
+VLC_PUBLIC_API int     VLC_VariableSet( int, char const *, vlc_value_t );
 
 /**
  * Get a VLC variable
@@ -324,7 +333,7 @@ int     VLC_VariableSet( int, char const *, vlc_value_t );
  * \param p_value a pointer to a vlc_value_t structure
  * \return VLC_SUCCESS on success
  */
-int     VLC_VariableGet( int, char const *, vlc_value_t * );
+VLC_PUBLIC_API int     VLC_VariableGet( int, char const *, vlc_value_t * );
 
 /**
  * Get a VLC variable type
@@ -337,7 +346,7 @@ int     VLC_VariableGet( int, char const *, vlc_value_t * );
  * \param pi_type a pointer to an integer
  * \return VLC_SUCCESS on success
  */
-int     VLC_VariableType( int, char const *, int * );
+VLC_PUBLIC_API int     VLC_VariableType( int, char const *, int * );
 
 /**
  * Add a target to the current playlist
@@ -353,7 +362,7 @@ int     VLC_VariableType( int, char const *, int * );
  * \param i_pos the position at which to add the new target (PLAYLIST_END for end)
  * \return VLC_SUCCESS on success
  */
-int     VLC_AddTarget( int, char const *, const char **, int, int, int );
+VLC_PUBLIC_API int     VLC_AddTarget( int, char const *, const char **, int, int, int );
 
 /**
  * Start the playlist and play the currently selected playlist item
@@ -365,7 +374,7 @@ int     VLC_AddTarget( int, char const *, const char **, int, int, int );
  * \param i_object a vlc object id
  * \return VLC_SUCCESS on success
  */
-int     VLC_Play( int );
+VLC_PUBLIC_API int     VLC_Play( int );
 
 /**
  * Pause the currently playing item. Resume it if already paused
@@ -376,7 +385,7 @@ int     VLC_Play( int );
  * \param i_object a vlc object id
  * \return VLC_SUCCESS on success
  */
-int     VLC_Pause( int );
+VLC_PUBLIC_API int     VLC_Pause( int );
 
 /**
  * Stop the playlist
@@ -389,7 +398,7 @@ int     VLC_Pause( int );
  * \param i_object a vlc object id
  * \return VLC_SUCCESS on success
  */
-int             VLC_Stop( int );
+VLC_PUBLIC_API int             VLC_Stop( int );
 
 /**
  * Tell if VLC is playing
@@ -400,7 +409,7 @@ int             VLC_Stop( int );
  * \param i_object a vlc object id
  * \return VLC_TRUE or VLC_FALSE
  */
-vlc_bool_t      VLC_IsPlaying( int );
+VLC_PUBLIC_API vlc_bool_t      VLC_IsPlaying( int );
 
 /**
  * Get the current position in a input
@@ -412,7 +421,7 @@ vlc_bool_t      VLC_IsPlaying( int );
  * \param i_object a vlc object id
  * \return a float in the range of 0.0 - 1.0
  */
-float           VLC_PositionGet( int );
+VLC_PUBLIC_API float           VLC_PositionGet( int );
 
 /**
  * Set the current position in a input
@@ -425,7 +434,7 @@ float           VLC_PositionGet( int );
  * \param i_position a float in the range of 0.0 - 1.0
  * \return a float in the range of 0.0 - 1.0
  */
-float           VLC_PositionSet( int, float );
+VLC_PUBLIC_API float           VLC_PositionSet( int, float );
 
 /**
  * Get the current position in a input
@@ -436,7 +445,7 @@ float           VLC_PositionSet( int, float );
  * \param i_object a vlc object id
  * \return the offset from 0:00 in seconds
  */
-int             VLC_TimeGet( int );
+VLC_PUBLIC_API int             VLC_TimeGet( int );
 
 /**
  * Seek to a position in the current input
@@ -451,7 +460,7 @@ int             VLC_TimeGet( int );
  * \param b_relative seek relative from current position
  * \return VLC_SUCCESS on success
  */
-int             VLC_TimeSet( int, int, vlc_bool_t );
+VLC_PUBLIC_API int             VLC_TimeSet( int, int, vlc_bool_t );
 
 /**
  * Get the total length of a input
@@ -462,7 +471,7 @@ int             VLC_TimeSet( int, int, vlc_bool_t );
  * \param i_object a vlc object id
  * \return the length in seconds
  */
-int             VLC_LengthGet( int );
+VLC_PUBLIC_API int             VLC_LengthGet( int );
 
 /**
  * Play the input faster than realtime
@@ -473,7 +482,7 @@ int             VLC_LengthGet( int );
  * \param i_object a vlc object id
  * \return the current speedrate
  */
-float           VLC_SpeedFaster( int );
+VLC_PUBLIC_API float           VLC_SpeedFaster( int );
 
 /**
  * Play the input slower than realtime
@@ -484,7 +493,7 @@ float           VLC_SpeedFaster( int );
  * \param i_object a vlc object id
  * \return the current speedrate
  */
-float           VLC_SpeedSlower( int );
+VLC_PUBLIC_API float           VLC_SpeedSlower( int );
 
 /**
  * Return the current playlist item
@@ -492,7 +501,7 @@ float           VLC_SpeedSlower( int );
  * \param i_object a vlc object id
  * \return the index of the playlistitem that is currently selected for play
  */
-int             VLC_PlaylistIndex( int );
+VLC_PUBLIC_API int             VLC_PlaylistIndex( int );
 
 /**
  * Total amount of items in the playlist
@@ -500,7 +509,7 @@ int             VLC_PlaylistIndex( int );
  * \param i_object a vlc object id
  * \return amount of playlist items
  */
-int             VLC_PlaylistNumberOfItems( int );
+VLC_PUBLIC_API int             VLC_PlaylistNumberOfItems( int );
 
 /**
  * Next playlist item
@@ -510,7 +519,7 @@ int             VLC_PlaylistNumberOfItems( int );
  * \param i_object a vlc object id
  * \return VLC_SUCCESS on success
  */
-int             VLC_PlaylistNext( int );
+VLC_PUBLIC_API int             VLC_PlaylistNext( int );
 
 /**
  * Previous playlist item
@@ -520,7 +529,7 @@ int             VLC_PlaylistNext( int );
  * \param i_object a vlc object id
  * \return VLC_SUCCESS on success
  */
-int             VLC_PlaylistPrev( int );
+VLC_PUBLIC_API int             VLC_PlaylistPrev( int );
 
 /**
  * Clear the contents of the playlist
@@ -532,7 +541,7 @@ int             VLC_PlaylistPrev( int );
  * \param i_object a vlc object id
  * \return VLC_SUCCESS on success
  */
-int             VLC_PlaylistClear( int );
+VLC_PUBLIC_API int             VLC_PlaylistClear( int );
 
 /**
  * Change the volume
@@ -541,7 +550,7 @@ int             VLC_PlaylistClear( int );
  * \param i_volume something in a range from 0-200
  * \return the new volume (range 0-200 %)
  */
-int             VLC_VolumeSet( int, int );
+VLC_PUBLIC_API int             VLC_VolumeSet( int, int );
 
 /**
  * Get the current volume
@@ -551,7 +560,7 @@ int             VLC_VolumeSet( int, int );
  * \param i_object a vlc object id
  * \return the current volume (range 0-200 %)
  */
-int             VLC_VolumeGet( int );
+VLC_PUBLIC_API int             VLC_VolumeGet( int );
 
 /**
  * Mute/Unmute the volume
@@ -559,7 +568,7 @@ int             VLC_VolumeGet( int );
  * \param i_object a vlc object id
  * \return VLC_SUCCESS on success
  */
-int            VLC_VolumeMute( int );
+VLC_PUBLIC_API int            VLC_VolumeMute( int );
 
 /**
  * Toggle Fullscreen mode
@@ -569,7 +578,7 @@ int            VLC_VolumeMute( int );
  * \param i_object a vlc object id
  * \return VLC_SUCCESS on success
  */
-int             VLC_FullScreen( int );
+VLC_PUBLIC_API int             VLC_FullScreen( int );
 
 
 # ifdef __cplusplus
index 334b7bf84c6cec47150542c74a9137b9c0d2471e..63e214b6e95a69f1e680cfebf470e1ee23311201 100644 (file)
@@ -472,17 +472,27 @@ typedef int ( * vlc_callback_t ) ( vlc_object_t *,      /* variable's object */
 
 #include "vlc_modules_macros.h"
 
-#if !defined (__PLUGIN__) || defined (HAVE_SHARED_LIBVLC)
+#if defined (WIN32) && defined (DLL_EXPORT)
+#  ifdef __cplusplus
+#    define VLC_EXPORT( type, name, args ) extern "C" __declspec(dllexport) type name args
+#    define VLC_INTERNAL( type, name, args ) extern "C" type name args
+#  else
+#    define VLC_EXPORT( type, name, args ) __declspec(dllexport) type name args
+#    define VLC_INTERNAL( type, name, args ) type name args
+#  endif
+#else
+#  if !defined (__PLUGIN__) || defined (HAVE_SHARED_LIBVLC)
 #   ifdef __cplusplus
 #      define VLC_EXPORT( type, name, args ) extern "C" type name args
 #   else
 #      define VLC_EXPORT( type, name, args ) type name args
 #   endif
-#else
+#  else
 #   define VLC_EXPORT( type, name, args ) struct _u_n_u_s_e_d_
     extern module_symbols_t* p_symbols;
+#  endif
+#  define VLC_INTERNAL( type, name, args ) VLC_EXPORT (type, name, args)
 #endif
-#define VLC_INTERNAL( type, name, args ) VLC_EXPORT (type, name, args)
 
 /*****************************************************************************
  * OS-specific headers and thread types
@@ -987,7 +997,7 @@ static inline void _SetQWBE( uint8_t *p, uint64_t i_qw )
 #   include <dirent.h>
 VLC_INTERNAL( void *, vlc_wopendir, ( const wchar_t * ) );
 VLC_INTERNAL( struct _wdirent *, vlc_wreaddir, ( void * ) );
-VLC_INTERNAL( int, vlc_wclosedir, ( void * ) );
+VLC_EXPORT( int, vlc_wclosedir, ( void * ) );
 VLC_INTERNAL( void, vlc_rewinddir, ( void * ) );
 VLC_INTERNAL( void, vlc_seekdir, ( void *, long ) );
 VLC_INTERNAL( long, vlc_telldir, ( void * ) );
index 7fb8519d3c3c5cef0c9b5d65ca1da6296025f7bd..1d4d2315d76832d05024a9729732369c808ce4c5 100644 (file)
@@ -1,4 +1,4 @@
-###############################################################################
+
 # Automake targets and declarations
 ###############################################################################
 
@@ -156,8 +156,8 @@ endif
 if HAVE_WIN32
 DATA_noinst_libvlc = libvlc$(LIBEXT) libvlc$(LIBEXT).a
 
-libvlc.dll.a: libvlc$(LIBEXT)
-       $(DLLTOOL) --export-all-symbols -l $@ -D $< $(libvlc_a_OBJECTS)
+libvlc.dll.a libvlc.def: libvlc$(LIBEXT)
+       $(DLLTOOL) -z libvlc.def -l libvlc.dll.a -D $< $(libvlc_a_OBJECTS)
 
 libvlc$(LIBEXT): $(libvlc_a_OBJECTS)
        @ldfl="`$(VLC_CONFIG) --libs plugin libvlc pic` $(INCLUDED_LIBINTL)" ; \
index 2980db1370896fc54d455338d5a606208ee24a15..efc582d55b5bdac1b1c15ad888ffbb6d359e5cbd 100644 (file)
--- a/src/vlc.c
+++ b/src/vlc.c
@@ -75,8 +75,10 @@ int main( int i_argc, char *ppsz_argv[] )
     }
 #endif
 
-    rootwrap ();
-    
+#if defined (HAVE_GETEUID) && !defined (SYS_BEOS)
+     rootwrap ();
+#endif
+
     /* Create a libvlc structure */
     i_ret = VLC_Create();
     if( i_ret < 0 )