00001 #ifndef MICROFEEDMAIN_H
00002 #define MICROFEEDMAIN_H
00003
00004 #define DBUS_API_SUBJECT_TO_CHANGE
00005 #include <dbus/dbus.h>
00006
00026 typedef struct _MicrofeedMain MicrofeedMain;
00027
00031 typedef struct _MicrofeedTimeout MicrofeedTimeout;
00032
00036 typedef struct _MicrofeedWatch MicrofeedWatch;
00037
00041 typedef enum {
00042 MICROFEED_WATCH_TYPE_NONE = 0,
00043 MICROFEED_WATCH_TYPE_READ = 1,
00044 MICROFEED_WATCH_TYPE_WRITE = 2,
00045 MICROFEED_WATCH_TYPE_READ_WRITE = 3
00046 } MicrofeedWatchType;
00047
00057 typedef void (*MicrofeedTimeoutCallback)(MicrofeedMain* microfeed_main, void* user_data);
00058
00067 typedef void (*MicrofeedWatchCallback)(MicrofeedMain* microfeed_main, int fd, MicrofeedWatchType type, void* user_data);
00068
00069 MicrofeedMain* microfeed_main_new();
00070 MicrofeedMain* microfeed_main_new_with_dbus_connection(DBusConnection* connection);
00071 void microfeed_main_free(MicrofeedMain* microfeed_main);
00072
00073 DBusConnection* microfeed_main_get_dbus_connection(MicrofeedMain* microfeed_main);
00074 void microfeed_main_loop(MicrofeedMain* microfeed_main);
00075 void microfeed_main_exit(MicrofeedMain* microfeed_main);
00076 MicrofeedTimeout* microfeed_main_add_timeout(MicrofeedMain* microfeed_main, unsigned long int milliseconds, MicrofeedTimeoutCallback callback, void* user_data);
00077 MicrofeedWatch* microfeed_main_add_watch(MicrofeedMain* microfeed_main, int fd, MicrofeedWatchType type, MicrofeedWatchCallback callback, void* user_data);
00078 void microfeed_main_remove_timeout(MicrofeedMain* microfeed_main, MicrofeedTimeout* timeout);
00079 void microfeed_main_remove_watch(MicrofeedMain* microfeed_main, MicrofeedWatch* watch);
00080
00086 #endif