LIRC libraries
LinuxInfraredRemoteControl
 All Data Structures Files Functions Variables Typedefs Enumerations Macros Modules Pages
lirc_client.h
Go to the documentation of this file.
1 
2 /****************************************************************************
3  ** lirc_client.h ***********************************************************
4  ****************************************************************************
5  *
6  * Copyright (C) 1998 Trent Piepho <xyzzy@u.washington.edu>
7  * Copyright (C) 1998 Christoph Bartelmus <lirc@bartelmus.de>
8  *
9  */
10 
110 #ifndef LIRC_CLIENT_H
111 #define LIRC_CLIENT_H
112 
113 #include <errno.h>
114 #include <stdarg.h>
115 #include <stddef.h>
116 #include <stdint.h>
117 #include <stdio.h>
118 #include <stdlib.h>
119 #include <string.h>
120 #include <syslog.h>
121 #include <unistd.h>
122 
123 #include "lirc/paths.h"
124 #include "lirc/lirc_config.h"
125 
126 #ifdef __cplusplus
127 extern "C" {
128 #endif
129 
130 
131 #ifndef __u32
132 typedef uint32_t __u32;
133 #endif
134 
135 #define LIRC_RET_SUCCESS (0)
136 #define LIRC_RET_ERROR (-1)
137 
138 #define LIRC_ALL ((char* ) (-1))
139 
140 
141  enum lirc_flags { none = 0x00,
142  once = 0x01,
143  quit = 0x02,
144  mode = 0x04,
145  ecno = 0x08,
146  startup_mode = 0x10,
147  toggle_reset = 0x20,
148  };
149 
150  struct lirc_list {
151  char* string;
152  struct lirc_list* next;
153  };
154 
155  struct lirc_code {
156  char* remote;
157  char* button;
158  struct lirc_code* next;
159  };
160 
161  struct lirc_config {
162  char* lircrc_class;
163  char* current_mode;
164  struct lirc_config_entry* next;
165  struct lirc_config_entry* first;
166 
167  int sockfd;
168  };
169 
171  char* prog;
172  struct lirc_code* code;
173  unsigned int rep_delay;
174  unsigned int ign_first_events;
175  unsigned int rep;
176  struct lirc_list* config;
177  char* change_mode;
178  unsigned int flags;
179 
180  char* mode;
181  struct lirc_list* next_config;
182  struct lirc_code* next_code;
183 
184  struct lirc_config_entry* next;
185  };
186 
193  typedef struct {
194  char packet[PACKET_SIZE + 1];
195  char buffer[PACKET_SIZE + 1];
196  char reply[PACKET_SIZE + 1];
197  int head;
199  char* next;
200  } lirc_cmd_ctx;
201 
209  int lirc_init(const char* prog, int verbose);
210 
215  int lirc_deinit(void);
216 
231  int lirc_readconfig(const char* path,
232  struct lirc_config** config,
233  int (check) (char* s));
234 
236  void lirc_freeconfig(struct lirc_config* config);
237 
239  char* lirc_nextir(void);
240 
242  char* lirc_ir2char(struct lirc_config* config, char* code);
243 
253 int lirc_nextcode(char** code);
254 
266 int lirc_code2char(struct lirc_config* config, char* code, char** string);
267 
268 
269 /* new interface for client daemon */
282  int lirc_readconfig_only(const char* file,
283  struct lirc_config** config,
284  int (check) (char* s));
285 
286  int lirc_code2charprog(struct lirc_config* config,
287  char* code, char** string,
288  char** prog);
289 
298  size_t lirc_getsocketname(const char* id, char* buf, size_t size);
299 
308  const char* lirc_getmode(struct lirc_config* config);
309 
319  const char* lirc_setmode(struct lirc_config* config,
320  const char* mode);
321 
322 /* 0.9.2: New interface for sending data. */
323 
334 int lirc_command_init(lirc_cmd_ctx* ctx, const char* fmt, ...);
335 
336 
347 int lirc_command_run(lirc_cmd_ctx* ctx, int fd);
348 
356 
369 int lirc_send_one(int fd, const char* remote, const char* keysym);
370 
371 
387 int lirc_simulate(int fd,
388  const char* remote,
389  const char* keysym,
390  int scancode,
391  int repeat);
392 
393 
404 int lirc_get_remote_socket(const char* address, int port, int quiet);
405 
406 
417 int lirc_get_local_socket(const char* path, int quiet);
418 
419 
423 #ifdef __cplusplus
424 }
425 #endif
426 
427 #endif
void lirc_command_reply_to_stdout(lirc_cmd_ctx *ctx)
Definition: lirc_client.c:123
Definition: lirc_client.h:170
int lirc_init(const char *prog, int verbose)
Definition: lirc_client.c:340
const char * lirc_setmode(struct lirc_config *config, const char *mode)
Definition: lirc_client.c:1862
int lirc_get_local_socket(const char *path, int quiet)
Definition: lirc_client.c:1956
int lirc_command_run(lirc_cmd_ctx *ctx, int fd)
Definition: lirc_client.c:182
char * lircrc_class
Definition: lirc_client.h:162
const char * lirc_getmode(struct lirc_config *config)
Definition: lirc_client.c:1841
#define PACKET_SIZE
Definition: lirc_config.h:100
int lirc_simulate(int fd, const char *remote, const char *keysym, int scancode, int repeat)
Definition: lirc_client.c:1909
size_t lirc_getsocketname(const char *id, char *buf, size_t size)
Definition: lirc_client.c:1832
int lirc_command_init(lirc_cmd_ctx *ctx, const char *fmt,...)
Definition: lirc_client.c:106
int lirc_nextcode(char **code)
Definition: lirc_client.c:1776
int lirc_get_remote_socket(const char *address, int port, int quiet)
Definition: lirc_client.c:1979
int lirc_code2char(struct lirc_config *config, char *code, char **string)
Definition: lirc_client.c:1721
int lirc_readconfig_only(const char *file, struct lirc_config **config, int(check)(char *s))
Definition: lirc_client.c:1452
int lirc_readconfig(const char *path, struct lirc_config **config, int(check)(char *s))
Definition: lirc_client.c:1369
int lirc_send_one(int fd, const char *remote, const char *keysym)
Definition: lirc_client.c:1893
int reply_to_stdout
Definition: lirc_client.h:198
void lirc_freeconfig(struct lirc_config *config)
Definition: lirc_client.c:1458
char * lirc_nextir(void)
Definition: lirc_client.c:1759
int lirc_deinit(void)
Definition: lirc_client.c:364
char * lirc_ir2char(struct lirc_config *config, char *code)
Definition: lirc_client.c:1640