2 * mlt_events.h -- event handling
3 * Copyright (C) 2004-2005 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
21 #ifndef _MLT_EVENTS_H_
22 #define _MLT_EVENTS_H_
24 #include "mlt_types.h"
26 #if GCC_VERSION >= 40000
27 typedef void ( *mlt_transmitter
)( void *, ... );
28 typedef void ( *mlt_listener
)( void *, ... );
30 typedef void ( *mlt_transmitter
)( );
31 typedef void ( *mlt_listener
)( );
34 extern void mlt_events_init( mlt_properties self
);
35 extern int mlt_events_register( mlt_properties self
, char *id
, mlt_transmitter transmitter
);
36 extern void mlt_events_fire( mlt_properties self
, char *id
, ... );
37 extern mlt_event
mlt_events_listen( mlt_properties self
, void *service
, char *id
, mlt_listener listener
);
38 extern void mlt_events_block( mlt_properties self
, void *service
);
39 extern void mlt_events_unblock( mlt_properties self
, void *service
);
40 extern void mlt_events_disconnect( mlt_properties self
, void *service
);
42 extern mlt_event
mlt_events_setup_wait_for( mlt_properties self
, char *id
);
43 extern void mlt_events_wait_for( mlt_properties self
, mlt_event event
);
44 extern void mlt_events_close_wait_for( mlt_properties self
, mlt_event event
);
46 extern void mlt_event_inc_ref( mlt_event self
);
47 extern void mlt_event_block( mlt_event self
);
48 extern void mlt_event_unblock( mlt_event self
);
49 extern void mlt_event_close( mlt_event self
);