Mercurial > audlegacy-plugins
comparison src/lirc/lirc.c @ 1034:b0cb6f8d4339 trunk
[svn] - lirc: works again with auddrct
| author | giacomo |
|---|---|
| date | Sat, 12 May 2007 05:21:09 -0700 |
| parents | d124034ebea3 |
| children | 2649ba83333b |
comparison
equal
deleted
inserted
replaced
| 1033:34b998b6e3b2 | 1034:b0cb6f8d4339 |
|---|---|
| 39 #include <gtk/gtk.h> | 39 #include <gtk/gtk.h> |
| 40 | 40 |
| 41 #include <glib.h> | 41 #include <glib.h> |
| 42 #include <audacious/i18n.h> | 42 #include <audacious/i18n.h> |
| 43 | 43 |
| 44 #include "audacious/plugin.h" | 44 #include <audacious/plugin.h> |
| 45 #include "audacious/beepctrl.h" | 45 #include <audacious/auddrct.h> |
| 46 | 46 |
| 47 #include <lirc/lirc_client.h> | 47 #include <lirc/lirc_client.h> |
| 48 | 48 |
| 49 #include "lirc.h" | 49 #include "lirc.h" |
| 50 | 50 |
| 122 { | 122 { |
| 123 while((ret=lirc_code2char(config,code,&c))==0 && c!=NULL) | 123 while((ret=lirc_code2char(config,code,&c))==0 && c!=NULL) |
| 124 { | 124 { |
| 125 if(strcasecmp("PLAY",c)==0) | 125 if(strcasecmp("PLAY",c)==0) |
| 126 { | 126 { |
| 127 xmms_remote_play(lirc_plugin.xmms_session); | 127 audacious_drct_play(); |
| 128 } | 128 } |
| 129 else if(strcasecmp("STOP",c)==0) | 129 else if(strcasecmp("STOP",c)==0) |
| 130 { | 130 { |
| 131 xmms_remote_stop(lirc_plugin.xmms_session); | 131 audacious_drct_stop(); |
| 132 } | 132 } |
| 133 else if(strcasecmp("PAUSE",c)==0) | 133 else if(strcasecmp("PAUSE",c)==0) |
| 134 { | 134 { |
| 135 xmms_remote_pause(lirc_plugin.xmms_session); | 135 audacious_drct_pause(); |
| 136 } | 136 } |
| 137 else if(strcasecmp("PLAYPAUSE",c) == 0) | 137 else if(strcasecmp("PLAYPAUSE",c) == 0) |
| 138 { | 138 { |
| 139 if(xmms_remote_is_playing(lirc_plugin. | 139 if(audacious_drct_get_playing()) |
| 140 xmms_session)) | 140 audacious_drct_pause(); |
| 141 xmms_remote_pause | |
| 142 (lirc_plugin.xmms_session); | |
| 143 else | 141 else |
| 144 xmms_remote_play | 142 audacious_drct_play(); |
| 145 (lirc_plugin.xmms_session); | |
| 146 } | 143 } |
| 147 else if(strncasecmp("NEXT",c,4)==0) | 144 else if(strncasecmp("NEXT",c,4)==0) |
| 148 { | 145 { |
| 149 ptr=c+4; | 146 ptr=c+4; |
| 150 while(isspace(*ptr)) ptr++; | 147 while(isspace(*ptr)) ptr++; |
| 151 n=atoi(ptr); | 148 n=atoi(ptr); |
| 152 | 149 |
| 153 if(n<=0) n=1; | 150 if(n<=0) n=1; |
| 154 for(;n>0;n--) | 151 for(;n>0;n--) |
| 155 { | 152 { |
| 156 xmms_remote_playlist_next | 153 audacious_drct_pl_next(); |
| 157 (lirc_plugin.xmms_session); | |
| 158 } | 154 } |
| 159 } | 155 } |
| 160 else if(strncasecmp("PREV",c,4)==0) | 156 else if(strncasecmp("PREV",c,4)==0) |
| 161 { | 157 { |
| 162 ptr=c+4; | 158 ptr=c+4; |
| 164 n=atoi(ptr); | 160 n=atoi(ptr); |
| 165 | 161 |
| 166 if(n<=0) n=1; | 162 if(n<=0) n=1; |
| 167 for(;n>0;n--) | 163 for(;n>0;n--) |
| 168 { | 164 { |
| 169 xmms_remote_playlist_prev | 165 audacious_drct_pl_prev(); |
| 170 (lirc_plugin.xmms_session); | |
| 171 } | 166 } |
| 172 } | 167 } |
| 173 else if(strcasecmp("SHUFFLE",c)==0) | 168 else if(strcasecmp("SHUFFLE",c)==0) |
| 174 { | 169 { |
| 175 xmms_remote_toggle_shuffle(lirc_plugin.xmms_session); | 170 audacious_drct_pl_shuffle_toggle(); |
| 176 } | 171 } |
| 177 else if(strcasecmp("REPEAT",c)==0) | 172 else if(strcasecmp("REPEAT",c)==0) |
| 178 { | 173 { |
| 179 xmms_remote_toggle_repeat(lirc_plugin.xmms_session); | 174 audacious_drct_pl_repeat_toggle(); |
| 180 } | 175 } |
| 181 else if(strncasecmp("FWD",c,3)==0) | 176 else if(strncasecmp("FWD",c,3)==0) |
| 182 { | 177 { |
| 183 ptr=c+3; | 178 ptr=c+3; |
| 184 while(isspace(*ptr)) ptr++; | 179 while(isspace(*ptr)) ptr++; |
| 185 n=atoi(ptr)*1000; | 180 n=atoi(ptr)*1000; |
| 186 | 181 |
| 187 if(n<=0) n=5000; | 182 if(n<=0) n=5000; |
| 188 output_time=xmms_remote_get_output_time | 183 output_time=audacious_drct_get_time(); |
| 189 (lirc_plugin.xmms_session); | 184 playlist_pos=audacious_drct_pl_get_pos(); |
| 190 playlist_pos=xmms_remote_get_playlist_pos | 185 playlist_time=audacious_drct_pl_get_time(playlist_pos); |
| 191 (lirc_plugin.xmms_session); | |
| 192 playlist_time=xmms_remote_get_playlist_time | |
| 193 (lirc_plugin.xmms_session, | |
| 194 playlist_pos); | |
| 195 if(playlist_time-output_time<n) | 186 if(playlist_time-output_time<n) |
| 196 output_time=playlist_time-n; | 187 output_time=playlist_time-n; |
| 197 xmms_remote_jump_to_time | 188 audacious_drct_seek(output_time+n); |
| 198 (lirc_plugin.xmms_session, | |
| 199 output_time+n); | |
| 200 } | 189 } |
| 201 else if(strncasecmp("BWD",c,3)==0) | 190 else if(strncasecmp("BWD",c,3)==0) |
| 202 { | 191 { |
| 203 ptr=c+3; | 192 ptr=c+3; |
| 204 while(isspace(*ptr)) ptr++; | 193 while(isspace(*ptr)) ptr++; |
| 205 n=atoi(ptr)*1000; | 194 n=atoi(ptr)*1000; |
| 206 | 195 |
| 207 if(n<=0) n=5000; | 196 if(n<=0) n=5000; |
| 208 output_time=xmms_remote_get_output_time | 197 output_time=audacious_drct_get_time(); |
| 209 (lirc_plugin.xmms_session); | |
| 210 if(output_time<n) | 198 if(output_time<n) |
| 211 output_time=n; | 199 output_time=n; |
| 212 xmms_remote_jump_to_time | 200 audacious_drct_seek(output_time-n); |
| 213 (lirc_plugin.xmms_session, | |
| 214 output_time-n); | |
| 215 } | 201 } |
| 216 else if(strncasecmp("VOL_UP",c,6)==0) | 202 else if(strncasecmp("VOL_UP",c,6)==0) |
| 217 { | 203 { |
| 218 ptr=c+6; | 204 ptr=c+6; |
| 219 while(isspace(*ptr)) ptr++; | 205 while(isspace(*ptr)) ptr++; |
| 220 n=atoi(ptr); | 206 n=atoi(ptr); |
| 221 if(n<=0) n=5; | 207 if(n<=0) n=5; |
| 222 | 208 |
| 223 v = xmms_remote_get_main_volume | 209 audacious_drct_get_volume_main(&v); |
| 224 (lirc_plugin.xmms_session); | |
| 225 if(v > (100-n)) v=100-n; | 210 if(v > (100-n)) v=100-n; |
| 226 xmms_remote_set_main_volume | 211 audacious_drct_set_volume_main(v+n); |
| 227 (lirc_plugin.xmms_session,v+n); | |
| 228 } | 212 } |
| 229 else if(strncasecmp("VOL_DOWN",c,8)==0) | 213 else if(strncasecmp("VOL_DOWN",c,8)==0) |
| 230 { | 214 { |
| 231 ptr=c+8; | 215 ptr=c+8; |
| 232 while (isspace(*ptr)) ptr++; | 216 while (isspace(*ptr)) ptr++; |
| 233 n=atoi(ptr); | 217 n=atoi(ptr); |
| 234 if(n<=0) n=5; | 218 if(n<=0) n=5; |
| 235 | 219 |
| 236 v = xmms_remote_get_main_volume | 220 audacious_drct_get_volume_main(&v); |
| 237 (lirc_plugin.xmms_session); | |
| 238 if(v<n) v=n; | 221 if(v<n) v=n; |
| 239 xmms_remote_set_main_volume | 222 audacious_drct_set_volume_main(v-n); |
| 240 (lirc_plugin.xmms_session,v-n); | |
| 241 } | 223 } |
| 242 else if(strcasecmp("QUIT",c)==0) | 224 else if(strcasecmp("QUIT",c)==0) |
| 243 { | 225 { |
| 244 xmms_remote_quit(lirc_plugin.xmms_session); | 226 audacious_drct_quit(); |
| 245 } | 227 } |
| 246 else if(strcasecmp("MUTE",c)==0) | 228 else if(strcasecmp("MUTE",c)==0) |
| 247 { | 229 { |
| 248 if(mute==0) | 230 if(mute==0) |
| 249 { | 231 { |
| 250 mute=1; | 232 mute=1; |
| 251 /* store the master volume so | 233 /* store the master volume so |
| 252 we can restore it on unmute. */ | 234 we can restore it on unmute. */ |
| 253 mute_vol = xmms_remote_get_main_volume | 235 audacious_drct_get_volume_main(&mute_vol); |
| 254 (lirc_plugin.xmms_session); | 236 audacious_drct_set_volume_main(0); |
| 255 xmms_remote_set_main_volume | |
| 256 (lirc_plugin.xmms_session, 0); | |
| 257 } | 237 } |
| 258 else | 238 else |
| 259 { | 239 { |
| 260 mute=0; | 240 mute=0; |
| 261 xmms_remote_set_main_volume | 241 audacious_drct_set_volume_main(mute_vol); |
| 262 (lirc_plugin.xmms_session, | |
| 263 mute_vol); | |
| 264 } | 242 } |
| 265 } | 243 } |
| 266 else if(strncasecmp("BAL_LEFT",c,8)==0) | 244 else if(strncasecmp("BAL_LEFT",c,8)==0) |
| 267 { | 245 { |
| 268 ptr=c+8; | 246 ptr=c+8; |
| 269 while(isspace(*ptr)) ptr++; | 247 while(isspace(*ptr)) ptr++; |
| 270 n=atoi(ptr); | 248 n=atoi(ptr); |
| 271 if(n<=0) n=5; | 249 if(n<=0) n=5; |
| 272 | 250 |
| 273 balance=xmms_remote_get_balance | 251 audacious_drct_get_volume_balance(&balance); |
| 274 (lirc_plugin.xmms_session); | |
| 275 balance-=n; | 252 balance-=n; |
| 276 if(balance<-100) balance=-100; | 253 if(balance<-100) balance=-100; |
| 277 xmms_remote_set_balance | 254 audacious_drct_set_volume_balance(balance); |
| 278 (lirc_plugin.xmms_session,balance); | |
| 279 } | 255 } |
| 280 else if(strncasecmp("BAL_RIGHT",c,9)==0) | 256 else if(strncasecmp("BAL_RIGHT",c,9)==0) |
| 281 { | 257 { |
| 282 ptr=c+9; | 258 ptr=c+9; |
| 283 while(isspace(*ptr)) ptr++; | 259 while(isspace(*ptr)) ptr++; |
| 284 n=atoi(ptr); | 260 n=atoi(ptr); |
| 285 if(n<=0) n=5; | 261 if(n<=0) n=5; |
| 286 | 262 |
| 287 balance=xmms_remote_get_balance | 263 audacious_drct_get_volume_balance(&balance); |
| 288 (lirc_plugin.xmms_session); | |
| 289 balance+=n; | 264 balance+=n; |
| 290 if(balance>100) balance=100; | 265 if(balance>100) balance=100; |
| 291 xmms_remote_set_balance | 266 audacious_drct_set_volume_balance(balance); |
| 292 (lirc_plugin.xmms_session,balance); | |
| 293 } | 267 } |
| 294 else if(strcasecmp("BAL_CENTER",c)==0) | 268 else if(strcasecmp("BAL_CENTER",c)==0) |
| 295 { | 269 { |
| 296 balance=0; | 270 balance=0; |
| 297 xmms_remote_set_balance | 271 audacious_drct_set_volume_balance(balance); |
| 298 (lirc_plugin.xmms_session,balance); | |
| 299 } | 272 } |
| 300 else if(strcasecmp("LIST",c)==0) | 273 else if(strcasecmp("LIST",c)==0) |
| 301 { | 274 { |
| 302 show_pl=xmms_remote_is_pl_win | 275 show_pl=audacious_drct_pl_win_is_visible(); |
| 303 (lirc_plugin.xmms_session); | |
| 304 show_pl=(show_pl) ? 0:1; | 276 show_pl=(show_pl) ? 0:1; |
| 305 xmms_remote_pl_win_toggle | 277 audacious_drct_pl_win_toggle(show_pl); |
| 306 (lirc_plugin.xmms_session,show_pl); | |
| 307 } | 278 } |
| 308 else if(strcasecmp("PLAYLIST_CLEAR",c)==0) | 279 else if(strcasecmp("PLAYLIST_CLEAR",c)==0) |
| 309 { | 280 { |
| 310 gboolean pl_visible; | 281 gboolean pl_visible; |
| 311 | 282 |
| 312 pl_visible=xmms_remote_is_pl_win | 283 pl_visible=audacious_drct_pl_win_is_visible(); |
| 313 (lirc_plugin.xmms_session); | 284 audacious_drct_stop(); |
| 314 xmms_remote_stop(lirc_plugin.xmms_session); | 285 audacious_drct_pl_clear(); |
| 315 xmms_remote_playlist_clear | |
| 316 (lirc_plugin.xmms_session); | |
| 317 /* This is to refresh window content */ | 286 /* This is to refresh window content */ |
| 318 xmms_remote_pl_win_toggle | 287 audacious_drct_pl_win_toggle(pl_visible); |
| 319 (lirc_plugin.xmms_session,pl_visible); | |
| 320 } | 288 } |
| 321 else if(strncasecmp("PLAYLIST_ADD ",c,13)==0) | 289 else if(strncasecmp("PLAYLIST_ADD ",c,13)==0) |
| 322 { | 290 { |
| 323 gboolean pl_visible; | 291 gboolean pl_visible; |
| 324 GList list; | 292 GList list; |
| 325 | 293 |
| 326 pl_visible=xmms_remote_is_pl_win | 294 pl_visible=audacious_drct_pl_win_is_visible(); |
| 327 (lirc_plugin.xmms_session); | |
| 328 list.prev=list.next=NULL; | 295 list.prev=list.next=NULL; |
| 329 list.data=c+13; | 296 list.data=c+13; |
| 330 xmms_remote_playlist_add | 297 audacious_drct_pl_add(&list); |
| 331 (lirc_plugin.xmms_session,&list); | |
| 332 /* This is to refresh window content */ | 298 /* This is to refresh window content */ |
| 333 xmms_remote_pl_win_toggle | 299 audacious_drct_pl_win_toggle(pl_visible); |
| 334 (lirc_plugin.xmms_session,pl_visible); | |
| 335 } | 300 } |
| 336 else | 301 else |
| 337 { | 302 { |
| 338 fprintf(stderr,_("%s: unknown command \"%s\"\n"), | 303 fprintf(stderr,_("%s: unknown command \"%s\"\n"), |
| 339 plugin_name,c); | 304 plugin_name,c); |
