1 /* $Id: lircd.h,v 5.19 2010/03/20 16:18:30 lirc Exp $ */ 2 3 /**************************************************************************** 4 ** lircd.h ***************************************************************** 5 **************************************************************************** 6 * 7 */ 8 9 #ifndef _LIRCD_H 10 #define _LIRCD_H 11 12 #include <syslog.h> 13 #include <sys/time.h> 14 15 #include "ir_remote.h" 16 17 #define PACKET_SIZE (256) 18 #define WHITE_SPACE " \t" 19 20 struct peer_connection { 21 char *host; 22 unsigned short port; 23 struct timeval reconnect; 24 int connection_failure; 25 int socket; 26 }; 27 28 extern int debug; 29 30 void sigterm(int sig); 31 void dosigterm(int sig); 32 void sighup(int sig); 33 void dosighup(int sig); 34 int setup_uinput(const char *name); 35 void config(void); 36 void nolinger(int sock); 37 void remove_client(int fd); 38 void add_client(int); 39 int add_peer_connection(char *server); 40 void connect_to_peers(); 41 int get_peer_message(struct peer_connection *peer); 42 void start_server(mode_t permission, int nodaemon); 43 44 #ifdef DEBUG 45 #define LOGPRINTF(level,fmt,args...) \ 46 if(level<=debug) logprintf(LOG_DEBUG,fmt, ## args ) 47 #define LOGPERROR(level,s) \ 48 if(level<=debug) logperror(LOG_DEBUG,s) 49 #else 50 #define LOGPRINTF(level,fmt,args...) \ 51 do {} while(0) 52 #define LOGPERROR(level,s) \ 53 do {} while(0) 54 #endif 55 56 void logprintf(int prio, const char *format_str, ...); 57 void logperror(int prio, const char *s); 58 59 void daemonize(void); 60 void sigalrm(int sig); 61 void dosigalrm(int sig); 62 int parse_rc(int fd, char *message, char *arguments, struct ir_remote **remote, struct ir_ncode **code, int *reps, 63 int n, int *err); 64 int send_success(int fd, char *message); 65 int send_error(int fd, char *message, char *format_str, ...); 66 int send_remote_list(int fd, char *message); 67 int send_remote(int fd, char *message, struct ir_remote *remote); 68 int send_name(int fd, char *message, struct ir_ncode *code); 69 int list(int fd, char *message, char *arguments); 70 int set_transmitters(int fd, char *message, char *arguments); 71 int simulate(int fd, char *message, char *arguments); 72 int send_once(int fd, char *message, char *arguments); 73 int send_start(int fd, char *message, char *arguments); 74 int send_stop(int fd, char *message, char *arguments); 75 int send_core(int fd, char *message, char *arguments, int once); 76 int version(int fd, char *message, char *arguments); 77 int get_pid(int fd, char *message, char *arguments); 78 int get_command(int fd); 79 void input_message(const char *message, const char *remote_name, const char *button_name, int reps, int release); 80 void broadcast_message(const char *message); 81 int waitfordata(long maxusec); 82 void loop(void); 83 84 struct protocol_directive { 85 char *name; 86 int (*function) (int fd, char *message, char *arguments); 87 }; 88 89 #endif /* _LIRCD_H */ 90