]> git.sesse.net Git - vlc/blobdiff - src/control/mediacontrol_core.c
LibVLC core: remove exceptions
[vlc] / src / control / mediacontrol_core.c
index 67a4cbef8168099596e5100b0ca1c0dffbf5fa0a..f721ec874549ad1300355c2ad8c0bb82af5c9921 100644 (file)
 #include <stdlib.h>                                      /* malloc(), free() */
 #include <string.h>
 
-#include <errno.h>                                                 /* ENOMEM */
 #include <stdio.h>
-#include <ctype.h>
 
 #ifdef HAVE_UNISTD_H
 #    include <unistd.h>
 #endif
-#ifdef HAVE_SYS_TIME_H
-#    include <sys/time.h>
-#endif
-#ifdef HAVE_SYS_TYPES_H
-#    include <sys/types.h>
-#endif
+#include <sys/types.h>
 
 mediacontrol_Instance* mediacontrol_new( int argc, char** argv, mediacontrol_Exception *exception )
 {
     mediacontrol_Instance* retval;
-    libvlc_exception_t ex;
-
-    libvlc_exception_init( &ex );
     mediacontrol_exception_init( exception );
 
     retval = ( mediacontrol_Instance* )malloc( sizeof( mediacontrol_Instance ) );
     if( !retval )
         RAISE_NULL( mediacontrol_InternalException, "Out of memory" );
 
-    retval->p_instance = libvlc_new( argc, (const char**)argv, &ex );
-    HANDLE_LIBVLC_EXCEPTION_NULL( &ex );
-    retval->p_media_player = libvlc_media_player_new( retval->p_instance, &ex );
-    HANDLE_LIBVLC_EXCEPTION_NULL( &ex );
+    retval->p_instance = libvlc_new( argc, (const char**)argv );
+    if( !retval->p_instance )
+        RAISE_NULL( mediacontrol_InternalException, "Out of memory" );
+    retval->p_media_player = libvlc_media_player_new( retval->p_instance );
+    if( !retval->p_media_player )
+        RAISE_NULL( mediacontrol_InternalException, "Out of memory" );
     return retval;
 }
 
@@ -97,9 +89,6 @@ mediacontrol_new_from_instance( libvlc_instance_t* p_instance,
                 mediacontrol_Exception *exception )
 {
     mediacontrol_Instance* retval;
-    libvlc_exception_t ex;
-
-    libvlc_exception_init( &ex );
 
     retval = ( mediacontrol_Instance* )malloc( sizeof( mediacontrol_Instance ) );
     if( ! retval )
@@ -107,8 +96,9 @@ mediacontrol_new_from_instance( libvlc_instance_t* p_instance,
         RAISE_NULL( mediacontrol_InternalException, "Out of memory" );
     }
     retval->p_instance = p_instance;
-    retval->p_media_player = libvlc_media_player_new( retval->p_instance, &ex );
-    HANDLE_LIBVLC_EXCEPTION_NULL( &ex );
+    retval->p_media_player = libvlc_media_player_new( retval->p_instance );
+    if( ! retval->p_media_player )
+         RAISE_NULL( mediacontrol_InternalException, "Out of memory" );
     return retval;
 }
 
@@ -122,11 +112,9 @@ mediacontrol_get_media_position( mediacontrol_Instance *self,
                                  mediacontrol_Exception *exception )
 {
     mediacontrol_Position* retval = NULL;
-    libvlc_exception_t ex;
     int64_t pos;
 
     mediacontrol_exception_init( exception );
-    libvlc_exception_init( &ex );
 
     retval = ( mediacontrol_Position* )malloc( sizeof( mediacontrol_Position ) );
     retval->origin = an_origin;
@@ -141,7 +129,7 @@ mediacontrol_get_media_position( mediacontrol_Instance *self,
     }
 
     /* We are asked for an AbsolutePosition. */
-    pos = libvlc_media_player_get_time( self->p_media_player, &ex );
+    pos = libvlc_media_player_get_time( self->p_media_player );
 
     if( a_key == mediacontrol_MediaTime )
     {
@@ -163,15 +151,12 @@ mediacontrol_set_media_position( mediacontrol_Instance *self,
                                  const mediacontrol_Position * a_position,
                                  mediacontrol_Exception *exception )
 {
-    libvlc_exception_t ex;
     int64_t i_pos;
 
-    libvlc_exception_init( &ex );
     mediacontrol_exception_init( exception );
 
     i_pos = private_mediacontrol_position2microsecond( self->p_media_player, a_position );
-    libvlc_media_player_set_time( self->p_media_player, i_pos / 1000, &ex );
-    HANDLE_LIBVLC_EXCEPTION_VOID( &ex );
+    libvlc_media_player_set_time( self->p_media_player, i_pos / 1000 );
 }
 
 /* Starts playing a stream */
@@ -196,8 +181,7 @@ mediacontrol_start( mediacontrol_Instance *self,
     mediacontrol_exception_init( exception );
     libvlc_exception_init( &ex );
 
-    p_media = libvlc_media_player_get_media( self->p_media_player, &ex );
-    HANDLE_LIBVLC_EXCEPTION_VOID( &ex );
+    p_media = libvlc_media_player_get_media( self->p_media_player );
 
     if ( ! p_media )
     {
@@ -208,7 +192,7 @@ mediacontrol_start( mediacontrol_Instance *self,
     {
         /* A media was defined. Get its mrl to reuse it, but reset the options
            (because start-time may have been set on the previous invocation */
-        psz_name = libvlc_media_get_mrl( p_media, &ex );
+        psz_name = libvlc_media_get_mrl( p_media );
         HANDLE_LIBVLC_EXCEPTION_VOID( &ex );
 
         /* Create a new media */
@@ -224,15 +208,13 @@ mediacontrol_start( mediacontrol_Instance *self,
             psz_from = ( char * )malloc( 20 * sizeof( char ) );
             i_from = private_mediacontrol_position2microsecond( self->p_media_player, a_position ) / 1000000;
             snprintf( psz_from, 20, "start-time=%"PRId64, i_from );
-            libvlc_media_add_option( p_media, psz_from, &ex );
+            libvlc_media_add_option( p_media, psz_from );
             HANDLE_LIBVLC_EXCEPTION_VOID( &ex );
         }
 
-        libvlc_media_player_set_media( self->p_media_player, p_media, &ex );
-        HANDLE_LIBVLC_EXCEPTION_VOID( &ex );
+        libvlc_media_player_set_media( self->p_media_player, p_media );
 
-        libvlc_media_player_play( self->p_media_player, &ex );
-        HANDLE_LIBVLC_EXCEPTION_VOID( &ex );
+        libvlc_media_player_play( self->p_media_player );
     }
 }
 
@@ -240,36 +222,24 @@ void
 mediacontrol_pause( mediacontrol_Instance *self,
                     mediacontrol_Exception *exception )
 {
-    libvlc_exception_t ex;
-
     mediacontrol_exception_init( exception );
-    libvlc_exception_init( &ex );
-    libvlc_media_player_pause( self->p_media_player, &ex );
-    HANDLE_LIBVLC_EXCEPTION_VOID( &ex );
+    libvlc_media_player_pause( self->p_media_player );
 }
 
 void
 mediacontrol_resume( mediacontrol_Instance *self,
                      mediacontrol_Exception *exception )
 {
-    libvlc_exception_t ex;
-
     mediacontrol_exception_init( exception );
-    libvlc_exception_init( &ex );
-    libvlc_media_player_pause( self->p_media_player, &ex );
-    HANDLE_LIBVLC_EXCEPTION_VOID( &ex );
+    libvlc_media_player_pause( self->p_media_player );
 }
 
 void
 mediacontrol_stop( mediacontrol_Instance *self,
                    mediacontrol_Exception *exception )
 {
-    libvlc_exception_t ex;
-
     mediacontrol_exception_init( exception );
-    libvlc_exception_init( &ex );
-    libvlc_media_player_stop( self->p_media_player, &ex );
-    HANDLE_LIBVLC_EXCEPTION_VOID( &ex );
+    libvlc_media_player_stop( self->p_media_player );
 }
 
 /**************************************************************************
@@ -290,8 +260,7 @@ mediacontrol_set_mrl( mediacontrol_Instance *self,
     p_media = libvlc_media_new( self->p_instance, psz_file, &ex );
     HANDLE_LIBVLC_EXCEPTION_VOID( &ex );
 
-    libvlc_media_player_set_media( self->p_media_player, p_media, &ex );
-    HANDLE_LIBVLC_EXCEPTION_VOID( &ex );
+    libvlc_media_player_set_media( self->p_media_player, p_media );
 }
 
 char *
@@ -304,8 +273,7 @@ mediacontrol_get_mrl( mediacontrol_Instance *self,
     mediacontrol_exception_init( exception );
     libvlc_exception_init( &ex );
 
-    p_media = libvlc_media_player_get_media( self->p_media_player, &ex );
-    HANDLE_LIBVLC_EXCEPTION_NULL( &ex );
+    p_media = libvlc_media_player_get_media( self->p_media_player );
 
     if ( ! p_media )
     {
@@ -315,7 +283,7 @@ mediacontrol_get_mrl( mediacontrol_Instance *self,
     {
         char * psz_mrl;
 
-        psz_mrl = libvlc_media_get_mrl( p_media, &ex );
+        psz_mrl = libvlc_media_get_mrl( p_media );
         HANDLE_LIBVLC_EXCEPTION_NULL( &ex );
         return psz_mrl;
     }
@@ -345,8 +313,7 @@ mediacontrol_get_stream_information( mediacontrol_Instance *self,
         return NULL;
     }
 
-    p_media = libvlc_media_player_get_media( self->p_media_player, &ex );
-    HANDLE_LIBVLC_EXCEPTION_NULL( &ex );
+    p_media = libvlc_media_player_get_media( self->p_media_player );
     if( ! p_media )
     {
         /* No p_media defined */
@@ -358,8 +325,8 @@ mediacontrol_get_stream_information( mediacontrol_Instance *self,
     else
     {
         libvlc_state_t state;
-        state = libvlc_media_player_get_state( self->p_media_player, &ex );
-        HANDLE_LIBVLC_EXCEPTION_NULL( &ex );
+
+        state = libvlc_media_player_get_state( self->p_media_player );
         switch( state )
         {
         case libvlc_NothingSpecial:
@@ -391,22 +358,10 @@ mediacontrol_get_stream_information( mediacontrol_Instance *self,
             break;
         }
 
-        retval->url = libvlc_media_get_mrl( p_media, &ex );
-       
-        retval->position = libvlc_media_player_get_time( self->p_media_player, &ex );
-        if( libvlc_exception_raised( &ex ) )
-        {
-            libvlc_exception_clear( &ex );
-            retval->position = 0;
-        }
-
-        retval->length = libvlc_media_player_get_length( self->p_media_player, &ex );
-        if( libvlc_exception_raised( &ex ) )
-        {
-            libvlc_exception_clear( &ex );
-            retval->length = 0;
-        }
+        retval->url = libvlc_media_get_mrl( p_media );
 
+        retval->position = libvlc_media_player_get_time( self->p_media_player );
+        retval->length = libvlc_media_player_get_length( self->p_media_player );
     }
     return retval;
 }