Changeset 3988:2bba9fc40cb0 in roaraudio


Ignore:
Timestamp:
06/28/10 13:05:25 (14 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

added support for pause and continue

File:
1 edited

Legend:

Unmodified
Added
Removed
  • plugins/roard/protocol-rplay.c

    r3986 r3988  
    3131 {"access",      NULL, -1, -1, NULL}, 
    3232 {"application", NULL,  1, -1, NULL}, 
    33  {"continue",    NULL,  1, -1, NULL}, 
     33 {"continue",    NULL,  1, -1, emul_rplay_on_continue}, 
    3434 {"die",         NULL,  1, -1, NULL}, 
    3535 {"done",        NULL,  1, -1, NULL}, // #ifdef DEBUG 
     
    4141 {"modify",      NULL,  2, -1, NULL}, 
    4242 {"monitor",     NULL,  1, -1, NULL}, 
    43  {"pause",       NULL,  1, -1, NULL}, 
     43 {"pause",       NULL,  1, -1, emul_rplay_on_pause}, 
    4444 {"play",        NULL,  1, -1, emul_rplay_on_play}, 
    4545 {"put",         NULL,  2, -1, emul_rplay_on_put}, 
     
    419419int emul_rplay_on_set(int client, struct emul_rplay_command * cmd, struct roar_vio_calls * vio, struct roar_keyval * kv, size_t kvlen); 
    420420int emul_rplay_on_modify(int client, struct emul_rplay_command * cmd, struct roar_vio_calls * vio, struct roar_keyval * kv, size_t kvlen); 
    421 int emul_rplay_on_pause(int client, struct emul_rplay_command * cmd, struct roar_vio_calls * vio, struct roar_keyval * kv, size_t kvlen); 
    422 int emul_rplay_on_continue(int client, struct emul_rplay_command * cmd, struct roar_vio_calls * vio, struct roar_keyval * kv, size_t kvlen); 
     421 
     422int emul_rplay_on_pause(int client, struct emul_rplay_command * cmd, struct roar_vio_calls * vio, struct roar_keyval * kv, size_t kvlen) { 
     423 struct roar_keyval * kvr; 
     424 int stream; 
     425 char * cd = NULL; 
     426 
     427 if ( kvlen < 1 ) { 
     428  emul_rplay_send_error(client, cmd, vio, kv, kvlen, "no id parameter"); 
     429  return -1; 
     430 } 
     431 
     432 stream = atoi(kv->key+1); 
     433 
     434 if ( streams_set_flag(stream, ROAR_FLAG_PAUSE) == -1 ) { 
     435  emul_rplay_send_error(client, cmd, vio, kv, kvlen, "can not set pause flag"); 
     436  return -1; 
     437 } 
     438 
     439 if ( (kvr = roar_keyval_lookup(kv, "client-data", kvlen, 0)) != NULL ) { 
     440  cd = kvr->value; 
     441 } 
     442 
     443 if ( cd == NULL ) 
     444  cd = ""; 
     445 
     446 roar_vio_printf(vio, "+id=#%i command=%s client-data=\"%s\"\n", stream, "pause", cd); 
     447 
     448 return 0; 
     449} 
     450 
     451int emul_rplay_on_continue(int client, struct emul_rplay_command * cmd, struct roar_vio_calls * vio, struct roar_keyval * kv, size_t kvlen) { 
     452 struct roar_keyval * kvr; 
     453 int stream; 
     454 char * cd = NULL; 
     455 
     456 if ( kvlen < 1 ) { 
     457  emul_rplay_send_error(client, cmd, vio, kv, kvlen, "no id parameter"); 
     458  return -1; 
     459 } 
     460 
     461 stream = atoi(kv->key+1); 
     462 
     463 if ( streams_reset_flag(stream, ROAR_FLAG_PAUSE) == -1 ) { 
     464  emul_rplay_send_error(client, cmd, vio, kv, kvlen, "can not reset pause flag"); 
     465  return -1; 
     466 } 
     467 
     468 if ( (kvr = roar_keyval_lookup(kv, "client-data", kvlen, 0)) != NULL ) { 
     469  cd = kvr->value; 
     470 } 
     471 
     472 if ( cd == NULL ) 
     473  cd = ""; 
     474 
     475 roar_vio_printf(vio, "+id=#%i command=%s client-data=\"%s\"\n", stream, "coninue", cd); 
     476 
     477 return 0; 
     478} 
     479 
    423480int emul_rplay_on_stop(int client, struct emul_rplay_command * cmd, struct roar_vio_calls * vio, struct roar_keyval * kv, size_t kvlen); 
    424481 
Note: See TracChangeset for help on using the changeset viewer.