26 #include "include/media/lirc.h"
27 #include "lirc/release.h"
28 #include "lirc/receive.h"
29 #include "lirc/lirc_log.h"
31 static struct timeval release_time;
33 static struct ir_ncode *release_ncode;
35 static int release_reps;
36 static lirc_t release_gap;
39 static struct ir_ncode *release_ncode2;
44 void register_input(
void)
48 if (release_remote == NULL)
52 gap.tv_usec = release_gap;
54 gettimeofday(&release_time, NULL);
55 timeradd(&release_time, &gap, &release_time);
60 if (reps == 0 && release_remote != NULL) {
61 release_remote2 = release_remote;
62 release_ncode2 = release_ncode;
63 release_code2 = release_code;
66 release_remote = remote;
67 release_ncode = ncode;
72 LOGPRINTF(1,
"release_gap: %lu", release_gap);
77 void get_release_data(
const char **remote_name,
const char **button_name,
int *reps)
79 if (release_remote != NULL) {
80 *remote_name = release_remote->
name;
81 *button_name = release_ncode->
name;
84 *remote_name = *button_name =
"(NULL)";
89 void set_release_suffix(
const char *s)
94 void get_release_time(
struct timeval *tv)
99 const char *check_release_event(
const char **remote_name,
const char **button_name)
103 if (release_remote2 != NULL) {
104 *remote_name = release_remote2->
name;
105 *button_name = release_ncode2->
name;
109 release_remote2 = NULL;
110 release_ncode2 = NULL;
114 logprintf(LIRC_ERROR,
"message buffer overflow");
124 const char *trigger_release_event(
const char **remote_name,
const char **button_name)
128 if (release_remote != NULL) {
130 *remote_name = release_remote->
name;
131 *button_name = release_ncode->
name;
135 timerclear(&release_time);
136 release_remote = NULL;
137 release_ncode = NULL;
141 logprintf(LIRC_ERROR,
"message buffer overflow");
150 const char *release_map_remotes(
struct ir_remote *old,
struct ir_remote *
new,
const char **remote_name,
151 const char **button_name)
156 if (release_remote2 != NULL) {
158 logprintf(LIRC_ERROR,
"release_remote2 still in use");
159 release_remote2 = NULL;
164 release_remote = remote;
165 release_ncode = ncode;
167 return trigger_release_event(remote_name, button_name);
lirc_t max_total_signal_length
struct ir_ncode * get_code_by_name(const struct ir_remote *remote, const char *name)
struct ir_remote * get_ir_remote(const struct ir_remote *remotes, const char *name)
int write_message(char *buffer, size_t size, const char *remote_name, const char *button_name, const char *button_suffix, ir_code code, int reps)
const struct ir_remote * is_in_remotes(const struct ir_remote *remotes, const struct ir_remote *remote)
#define LIRC_RELEASE_SUFFIX
#define LOGPRINTF(level, fmt, args...)