00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef MICROFEEDMAIN_H
00021 #define MICROFEEDMAIN_H
00022
00023 #define DBUS_API_SUBJECT_TO_CHANGE
00024 #include <dbus/dbus.h>
00025
00045 typedef struct _MicrofeedMain MicrofeedMain;
00046
00050 typedef struct _MicrofeedTimeout MicrofeedTimeout;
00051
00055 typedef struct _MicrofeedWatch MicrofeedWatch;
00056
00060 typedef enum {
00061 MICROFEED_WATCH_TYPE_NONE = 0,
00062 MICROFEED_WATCH_TYPE_READ = 1,
00063 MICROFEED_WATCH_TYPE_WRITE = 2,
00064 MICROFEED_WATCH_TYPE_READ_WRITE = 3
00065 } MicrofeedWatchType;
00066
00076 typedef void (*MicrofeedTimeoutCallback)(MicrofeedMain* microfeed_main, void* user_data);
00077
00086 typedef void (*MicrofeedWatchCallback)(MicrofeedMain* microfeed_main, int fd, MicrofeedWatchType type, void* user_data);
00087
00088 MicrofeedMain* microfeed_main_new();
00089 MicrofeedMain* microfeed_main_new_with_dbus_connection(DBusConnection* connection);
00090 void microfeed_main_free(MicrofeedMain* microfeed_main);
00091
00092 DBusConnection* microfeed_main_get_dbus_connection(MicrofeedMain* microfeed_main);
00093 void microfeed_main_loop(MicrofeedMain* microfeed_main);
00094 void microfeed_main_exit(MicrofeedMain* microfeed_main);
00095 MicrofeedTimeout* microfeed_main_add_timeout(MicrofeedMain* microfeed_main, unsigned long int milliseconds, MicrofeedTimeoutCallback callback, void* user_data);
00096 MicrofeedWatch* microfeed_main_add_watch(MicrofeedMain* microfeed_main, int fd, MicrofeedWatchType type, MicrofeedWatchCallback callback, void* user_data);
00097 void microfeed_main_remove_timeout(MicrofeedMain* microfeed_main, MicrofeedTimeout* timeout);
00098 void microfeed_main_remove_watch(MicrofeedMain* microfeed_main, MicrofeedWatch* watch);
00099
00105 #endif