00001 #ifndef MICROFEEDMAIN_H
00002 #define MICROFEEDMAIN_H
00003
00004 #define DBUS_API_SUBJECT_TO_CHANGE
00005 #include <dbus/dbus.h>
00006
00021 typedef struct _MicrofeedMain MicrofeedMain;
00022
00026 typedef struct _MicrofeedTimeout MicrofeedTimeout;
00027
00031 typedef struct _MicrofeedWatch MicrofeedWatch;
00032
00036 typedef enum {
00037 MICROFEED_WATCH_TYPE_NONE = 0,
00038 MICROFEED_WATCH_TYPE_READ = 1,
00039 MICROFEED_WATCH_TYPE_WRITE = 2,
00040 MICROFEED_WATCH_TYPE_READ_WRITE = 3
00041 } MicrofeedWatchType;
00042
00052 typedef void (*MicrofeedTimeoutCallback)(MicrofeedMain* microfeed_main, void* user_data);
00053
00062 typedef void (*MicrofeedWatchCallback)(MicrofeedMain* microfeed_main, int fd, MicrofeedWatchType type, void* user_data);
00063
00064 MicrofeedMain* microfeed_main_new();
00065 MicrofeedMain* microfeed_main_new_with_dbus_connection(DBusConnection* connection);
00066 void microfeed_main_free(MicrofeedMain* microfeed_main);
00067
00068 DBusConnection* microfeed_main_get_dbus_connection(MicrofeedMain* microfeed_main);
00069 void microfeed_main_loop(MicrofeedMain* microfeed_main);
00070 void microfeed_main_exit(MicrofeedMain* microfeed_main);
00071 MicrofeedTimeout* microfeed_main_add_timeout(MicrofeedMain* microfeed_main, unsigned long int milliseconds, MicrofeedTimeoutCallback callback, void* user_data);
00072 MicrofeedWatch* microfeed_main_add_watch(MicrofeedMain* microfeed_main, int fd, MicrofeedWatchType type, MicrofeedWatchCallback callback, void* user_data);
00073 void microfeed_main_remove_timeout(MicrofeedMain* microfeed_main, MicrofeedTimeout* timeout);
00074 void microfeed_main_remove_watch(MicrofeedMain* microfeed_main, MicrofeedWatch* watch);
00075
00078 #endif