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