Mercurial > audlegacy-plugins
comparison src/lirc/lirc.c @ 2277:5e54ffc4f46f
Apply lirc patch from bugzilla. (Bugzilla #62).
author | Andrew O. Shadoura <bugzilla@tut.by> |
---|---|
date | Tue, 01 Jan 2008 16:03:44 -0600 |
parents | 5e88191720a7 |
children | 738914331374 |
comparison
equal
deleted
inserted
replaced
2272:a7c0e58fa489 | 2277:5e54ffc4f46f |
---|---|
44 | 44 |
45 #include <lirc/lirc_client.h> | 45 #include <lirc/lirc_client.h> |
46 | 46 |
47 #include "lirc.h" | 47 #include "lirc.h" |
48 | 48 |
49 #include "common.h" | |
50 | |
49 const char *plugin_name="LIRC Plugin"; | 51 const char *plugin_name="LIRC Plugin"; |
50 | 52 |
51 GeneralPlugin lirc_plugin = { | 53 GeneralPlugin lirc_plugin = { |
52 .description = "LIRC Plugin", | 54 .description = "LIRC Plugin", |
53 .init = init, | 55 .init = init, |
54 .about = about, | 56 .about = about, |
55 .configure = NULL, | 57 .configure = configure, |
56 .cleanup = cleanup | 58 .cleanup = cleanup |
57 }; | 59 }; |
58 | 60 |
59 GeneralPlugin *lirc_gplist[] = { &lirc_plugin, NULL }; | 61 GeneralPlugin *lirc_gplist[] = { &lirc_plugin, NULL }; |
60 DECLARE_PLUGIN(lirc, NULL, NULL, NULL, NULL, NULL, lirc_gplist, NULL, NULL); | 62 DECLARE_PLUGIN(lirc, NULL, NULL, NULL, NULL, NULL, lirc_gplist, NULL, NULL); |
65 gint mute=0; /* mute flag */ | 67 gint mute=0; /* mute flag */ |
66 gint mute_vol=0; /* holds volume before mute */ | 68 gint mute_vol=0; /* holds volume before mute */ |
67 | 69 |
68 gint input_tag; | 70 gint input_tag; |
69 | 71 |
70 void init(void) | 72 void init_lirc(void) |
71 { | 73 { |
72 int flags; | 74 int flags; |
73 | 75 |
74 if((lirc_fd=lirc_init("audacious",1))==-1) | 76 if((lirc_fd=lirc_init("audacious",1))==-1) |
75 { | 77 { |
94 if(flags!=-1) | 96 if(flags!=-1) |
95 { | 97 { |
96 fcntl(lirc_fd,F_SETFL,flags|O_NONBLOCK); | 98 fcntl(lirc_fd,F_SETFL,flags|O_NONBLOCK); |
97 } | 99 } |
98 fflush(stdout); | 100 fflush(stdout); |
101 } | |
102 | |
103 void init(void) | |
104 { | |
105 load_cfg(); | |
106 init_lirc(); | |
107 } | |
108 | |
109 gboolean reconnect_lirc(gpointer data) | |
110 { | |
111 fprintf(stderr,_("%s: trying to reconnect...\n"),plugin_name); | |
112 init(); | |
113 return (lirc_fd==-1); | |
99 } | 114 } |
100 | 115 |
101 void lirc_input_callback(gpointer data,gint source, | 116 void lirc_input_callback(gpointer data,gint source, |
102 GdkInputCondition condition) | 117 GdkInputCondition condition) |
103 { | 118 { |
302 if(ret==-1) | 317 if(ret==-1) |
303 { | 318 { |
304 /* something went badly wrong */ | 319 /* something went badly wrong */ |
305 fprintf(stderr,_("%s: disconnected from LIRC\n"),plugin_name); | 320 fprintf(stderr,_("%s: disconnected from LIRC\n"),plugin_name); |
306 cleanup(); | 321 cleanup(); |
307 return; | 322 if(b_enable_reconnect) |
323 { | |
324 fprintf(stderr,_("%s: will try reconnect every %d seconds...\n"),plugin_name,reconnect_timeout); | |
325 g_timeout_add(1000*reconnect_timeout, reconnect_lirc, NULL); | |
326 } | |
308 } | 327 } |
309 } | 328 } |
310 | 329 |
311 void cleanup() | 330 void cleanup() |
312 { | 331 { |