]> git.sesse.net Git - mlt/blobdiff - src/valerie/valerie.c
Constness changes
[mlt] / src / valerie / valerie.c
index 428ed0b6ab8c99013355a121008ec8538394f7d0..dfc45912c451edd12cee8bf16ed871cd043b641c 100644 (file)
@@ -117,7 +117,7 @@ static valerie_error_code valerie_get_error_code( valerie this, valerie_response
 /** Execute a command.
 */
 
-valerie_error_code valerie_execute( valerie this, size_t size, char *format, ... )
+valerie_error_code valerie_execute( valerie this, size_t size, const char *format, ... )
 {
        valerie_error_code error = valerie_server_unavailable;
        char *command = malloc( size );
@@ -145,6 +145,68 @@ valerie_error_code valerie_execute( valerie this, size_t size, char *format, ...
        return error;
 }
 
+/** Execute a command.
+*/
+
+valerie_error_code valerie_receive( valerie this, char *doc, size_t size, char *format, ... )
+{
+       valerie_error_code error = valerie_server_unavailable;
+       char *command = malloc( size );
+       if ( this != NULL && command != NULL )
+       {
+               va_list list;
+               va_start( list, format );
+               if ( vsnprintf( command, size, format, list ) != 0 )
+               {
+                       valerie_response response = valerie_parser_received( this->parser, command, doc );
+                       valerie_set_last_response( this, response );
+                       error = valerie_get_error_code( this, response );
+               }
+               else
+               {
+                       error = valerie_invalid_command;
+               }
+               va_end( list );
+       }
+       else
+       {
+               error = valerie_malloc_failed;
+       }
+       free( command );
+       return error;
+}
+
+/** Execute a command.
+*/
+
+valerie_error_code valerie_push( valerie this, mlt_service service, size_t size, char *format, ... )
+{
+       valerie_error_code error = valerie_server_unavailable;
+       char *command = malloc( size );
+       if ( this != NULL && command != NULL )
+       {
+               va_list list;
+               va_start( list, format );
+               if ( vsnprintf( command, size, format, list ) != 0 )
+               {
+                       valerie_response response = valerie_parser_push( this->parser, command, service );
+                       valerie_set_last_response( this, response );
+                       error = valerie_get_error_code( this, response );
+               }
+               else
+               {
+                       error = valerie_invalid_command;
+               }
+               va_end( list );
+       }
+       else
+       {
+               error = valerie_malloc_failed;
+       }
+       free( command );
+       return error;
+}
+
 /** Set a global property.
 */
 
@@ -184,7 +246,7 @@ valerie_error_code valerie_unit_add( valerie this, char *guid, int *unit )
        if ( error == valerie_ok )
        {
                int length = valerie_response_count( this->last_response );
-               char *line = valerie_response_get_line( this->last_response, length - 2 );
+               char *line = valerie_response_get_line( this->last_response, length - 1 );
                if ( line == NULL || sscanf( line, "U%d", unit ) != 1 )
                        error = valerie_unit_creation_failed;
        }
@@ -252,6 +314,22 @@ valerie_error_code valerie_unit_append( valerie this, int unit, char *file, int3
        return valerie_execute( this, 10240, "APND U%d \"%s\" %d %d", unit, file, in, out );
 }
 
+/** Push a service on to a unit.
+*/
+
+valerie_error_code valerie_unit_receive( valerie this, int unit, char *command, char *doc )
+{
+       return valerie_receive( this, doc, 10240, "PUSH U%d %s", unit, command );
+}
+
+/** Push a service on to a unit.
+*/
+
+valerie_error_code valerie_unit_push( valerie this, int unit, char *command, mlt_service service )
+{
+       return valerie_push( this, service, 10240, "PUSH U%d %s", unit, command );
+}
+
 /** Clean the unit - this function removes all but the currently playing clip.
 */
 
@@ -260,6 +338,22 @@ valerie_error_code valerie_unit_clean( valerie this, int unit )
        return valerie_execute( this, 1024, "CLEAN U%d", unit );
 }
 
+/** Clear the unit - this function removes all clips.
+*/
+
+valerie_error_code valerie_unit_clear( valerie this, int unit )
+{
+       return valerie_execute( this, 1024, "CLEAR U%d", unit );
+}
+
+/** Wipe the unit - this function removes all clips before the current one.
+*/
+
+valerie_error_code valerie_unit_wipe( valerie this, int unit )
+{
+       return valerie_execute( this, 1024, "WIPE U%d", unit );
+}
+
 /** Move clips on the units playlist.
 */
 
@@ -297,7 +391,7 @@ valerie_error_code valerie_unit_clip_insert( valerie this, int unit, valerie_cli
 {
        char temp[ 100 ];
        valerie_interpret_clip_offset( temp, offset, clip );
-       return valerie_execute( this, 1024, "INSERT U%d %s %s %d %d", unit, file, temp, in, out );
+       return valerie_execute( this, 1024, "INSERT U%d \"%s\" %s %d %d", unit, file, temp, in, out );
 }
 
 /** Play the unit at normal speed.
@@ -440,7 +534,7 @@ valerie_error_code valerie_unit_clear_in_out( valerie this, int unit )
 /** Set a unit configuration property.
 */
 
-valerie_error_code valerie_unit_set( valerie this, int unit, char *name, char *value )
+valerie_error_code valerie_unit_set( valerie this, int unit, const char *name, const char *value )
 {
        return valerie_execute( this, 1024, "USET U%d %s=%s", unit, name, value );
 }
@@ -493,7 +587,7 @@ valerie_notifier valerie_get_notifier( valerie this )
 /** List the contents of the specified directory.
 */
 
-valerie_dir valerie_dir_init( valerie this, char *directory )
+valerie_dir valerie_dir_init( valerie this, const char *directory )
 {
        valerie_dir dir = malloc( sizeof( valerie_dir_t ) );
        if ( dir != NULL )
@@ -817,9 +911,9 @@ valerie_response valerie_get_last_response( valerie this )
 /** Obtain a printable message associated to the error code provided.
 */
 
-char *valerie_error_description( valerie_error_code error )
+const char *valerie_error_description( valerie_error_code error )
 {
-       char *msg = "Unrecognised error";
+       const char *msg = "Unrecognised error";
        switch( error )
        {
                case valerie_ok: