2 * valerie.h -- High Level Client API for miracle
3 * Copyright (C) 2002-2003 Ushodaya Enterprises Limited
4 * Author: Charles Yates <charles.yates@pandora.be>
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
24 /* System header files */
27 /* MLT Header files. */
28 #include <framework/mlt.h>
30 /* Application header files */
31 #include "valerie_parser.h"
32 #include "valerie_status.h"
33 #include "valerie_notifier.h"
40 /** Client error conditions
46 valerie_malloc_failed,
47 valerie_unknown_error,
49 valerie_invalid_command,
50 valerie_server_timeout,
51 valerie_missing_argument,
52 valerie_server_unavailable,
53 valerie_unit_creation_failed,
54 valerie_unit_unavailable,
56 valerie_invalid_position
60 /** Clip index specification.
75 valerie_parser parser;
76 valerie_response last_response;
83 extern valerie valerie_init( valerie_parser );
85 /* Connect to the valerie parser instance */
86 extern valerie_error_code valerie_connect( valerie );
88 /* Global functions */
89 extern valerie_error_code valerie_set( valerie, char *, char * );
90 extern valerie_error_code valerie_get( valerie, char *, char *, int );
91 extern valerie_error_code valerie_run( valerie, char * );
94 extern valerie_error_code valerie_unit_add( valerie, char *, int * );
95 extern valerie_error_code valerie_unit_load( valerie, int, char * );
96 extern valerie_error_code valerie_unit_load_clipped( valerie, int, char *, int32_t, int32_t );
97 extern valerie_error_code valerie_unit_load_back( valerie, int, char * );
98 extern valerie_error_code valerie_unit_load_back_clipped( valerie, int, char *, int32_t, int32_t );
99 extern valerie_error_code valerie_unit_append( valerie, int, char *, int32_t, int32_t );
100 extern valerie_error_code valerie_unit_receive( valerie, int, char *, char * );
101 extern valerie_error_code valerie_unit_push( valerie, int, char *, mlt_service );
102 extern valerie_error_code valerie_unit_clean( valerie, int );
103 extern valerie_error_code valerie_unit_wipe( valerie, int );
104 extern valerie_error_code valerie_unit_clear( valerie, int );
105 extern valerie_error_code valerie_unit_clip_move( valerie, int, valerie_clip_offset, int, valerie_clip_offset, int );
106 extern valerie_error_code valerie_unit_clip_remove( valerie, int, valerie_clip_offset, int );
107 extern valerie_error_code valerie_unit_remove_current_clip( valerie, int );
108 extern valerie_error_code valerie_unit_clip_insert( valerie, int, valerie_clip_offset, int, char *, int32_t, int32_t );
109 extern valerie_error_code valerie_unit_play( valerie, int );
110 extern valerie_error_code valerie_unit_play_at_speed( valerie, int, int );
111 extern valerie_error_code valerie_unit_stop( valerie, int );
112 extern valerie_error_code valerie_unit_pause( valerie, int );
113 extern valerie_error_code valerie_unit_rewind( valerie, int );
114 extern valerie_error_code valerie_unit_fast_forward( valerie, int );
115 extern valerie_error_code valerie_unit_step( valerie, int, int32_t );
116 extern valerie_error_code valerie_unit_goto( valerie, int, int32_t );
117 extern valerie_error_code valerie_unit_clip_goto( valerie, int, valerie_clip_offset, int, int32_t );
118 extern valerie_error_code valerie_unit_clip_set_in( valerie, int, valerie_clip_offset, int, int32_t );
119 extern valerie_error_code valerie_unit_clip_set_out( valerie, int, valerie_clip_offset, int, int32_t );
120 extern valerie_error_code valerie_unit_set_in( valerie, int, int32_t );
121 extern valerie_error_code valerie_unit_set_out( valerie, int, int32_t );
122 extern valerie_error_code valerie_unit_clear_in( valerie, int );
123 extern valerie_error_code valerie_unit_clear_out( valerie, int );
124 extern valerie_error_code valerie_unit_clear_in_out( valerie, int );
125 extern valerie_error_code valerie_unit_set( valerie, int, const char *, const char * );
126 extern valerie_error_code valerie_unit_get( valerie, int, char * );
127 extern valerie_error_code valerie_unit_status( valerie, int, valerie_status );
128 extern valerie_error_code valerie_unit_transfer( valerie, int, int );
130 /* Notifier functionality. */
131 extern valerie_notifier valerie_get_notifier( valerie );
133 /** Structure for the directory.
139 valerie_response response;
141 *valerie_dir, valerie_dir_t;
143 /** Directory entry structure.
149 char name[ NAME_MAX ];
150 char full[ PATH_MAX + NAME_MAX ];
151 unsigned long long size;
153 *valerie_dir_entry, valerie_dir_entry_t;
155 /* Directory reading. */
156 extern valerie_dir valerie_dir_init( valerie, char * );
157 extern valerie_error_code valerie_dir_get_error_code( valerie_dir );
158 extern valerie_error_code valerie_dir_get( valerie_dir, int, valerie_dir_entry );
159 extern int valerie_dir_count( valerie_dir );
160 extern void valerie_dir_close( valerie_dir );
162 /** Structure for the list.
168 valerie_response response;
170 *valerie_list, valerie_list_t;
172 /** List entry structure.
178 char full[ PATH_MAX + NAME_MAX ];
185 *valerie_list_entry, valerie_list_entry_t;
188 extern valerie_list valerie_list_init( valerie, int );
189 extern valerie_error_code valerie_list_get_error_code( valerie_list );
190 extern valerie_error_code valerie_list_get( valerie_list, int, valerie_list_entry );
191 extern int valerie_list_count( valerie_list );
192 extern void valerie_list_close( valerie_list );
194 /** Structure for nodes.
199 valerie_response response;
201 *valerie_nodes, valerie_nodes_t;
203 /** Node entry structure.
212 *valerie_node_entry, valerie_node_entry_t;
215 extern valerie_nodes valerie_nodes_init( valerie );
216 extern valerie_error_code valerie_nodes_get_error_code( valerie_nodes );
217 extern valerie_error_code valerie_nodes_get( valerie_nodes, int, valerie_node_entry );
218 extern int valerie_nodes_count( valerie_nodes );
219 extern void valerie_nodes_close( valerie_nodes );
221 /** Structure for units.
226 valerie_response response;
228 *valerie_units, valerie_units_t;
230 /** Unit entry structure.
240 *valerie_unit_entry, valerie_unit_entry_t;
243 extern valerie_units valerie_units_init( valerie );
244 extern valerie_error_code valerie_units_get_error_code( valerie_units );
245 extern valerie_error_code valerie_units_get( valerie_units, int, valerie_unit_entry );
246 extern int valerie_units_count( valerie_units );
247 extern void valerie_units_close( valerie_units );
249 /* Miscellaenous functions */
250 extern valerie_response valerie_get_last_response( valerie );
251 extern const char *valerie_error_description( valerie_error_code );
253 /* Courtesy functions. */
254 extern valerie_error_code valerie_execute( valerie, size_t, const char *, ... );
255 extern valerie_error_code valerie_push( valerie, mlt_service, size_t, char *, ... );
257 /* Close function. */
258 extern void valerie_close( valerie );