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