Changeset 963:9f2802d4302b in roaraudio


Ignore:
Timestamp:
12/09/08 15:43:39 (15 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

added support to read stream flags (currently primary and output), prepered driver name request support

Files:
4 edited

Legend:

Unmodified
Added
Removed
  • include/libroar/stream.h

    r826 r963  
    4848*/ 
    4949 
     50#define ROAR_FLAG_NONE           0x00 
     51#define ROAR_FLAG_PRIMARY        0x01 
     52#define ROAR_FLAG_OUTPUT         0x02 
     53#define ROAR_FLAG_DRIVER         ROAR_FLAG_OUTPUT 
     54#define ROAR_FLAG_SOURCE         0x04 
     55#define ROAR_FLAG_SYNC           0x08 
     56 
    5057struct roar_stream_info { 
    5158 int block_size; 
     
    5360 int post_underruns; 
    5461 int codec; 
     62 int flags; 
     63 char * driver; 
    5564}; 
    5665 
  • libroar/stream.c

    r881 r963  
    282282  return -1; 
    283283 
     284 memset(info, 0, sizeof(struct roar_stream_info)); 
     285 
    284286 info->block_size     = data[2]; 
    285287 info->pre_underruns  = data[3]; 
    286288 info->post_underruns = data[4]; 
    287289 info->codec          = data[5]; 
     290 info->flags          = data[6]; 
    288291 
    289292 return 0; 
  • roarclients/roarctl.c

    r669 r963  
    2727#include <grp.h> 
    2828 
     29int g_verbose = 0; 
    2930 
    3031int display_mixer (struct roar_connection * con, int stream); 
     
    3839 printf("  --server SERVER         - Set server hostname\n" 
    3940        "  --help                  - Show this help\n" 
     41        "  --verbose   -v          - Show verbose output\n" 
    4042       ); 
    4143 
     
    156158 struct roar_stream s; 
    157159 struct roar_stream_info info; 
     160 char flags[80]; 
    158161 
    159162 
     
    182185   printf("Input codec (streamed): %2i (%s%s)\n", info.codec, roar_codec2str(info.codec), 
    183186                                      info.codec == ROAR_CODEC_DEFAULT ? " native" : ""); 
    184    printf("Input block size      : %i Byte\n", info.block_size); 
    185    printf("Underruns pre/post    : %i/%i\n",   info.pre_underruns, info.post_underruns); 
     187   if ( g_verbose ) { 
     188    printf("Input block size      : %i Byte\n", info.block_size); 
     189    printf("Underruns pre/post    : %i/%i\n",   info.pre_underruns, info.post_underruns); 
     190 
     191    *flags = 0; 
     192    if ( info.flags & ROAR_FLAG_PRIMARY ) 
     193     strcat(flags, "primary "); 
     194    if ( info.flags & ROAR_FLAG_SYNC ) 
     195     strcat(flags, "sync "); 
     196    if ( info.flags & ROAR_FLAG_OUTPUT ) 
     197     strcat(flags, "output "); 
     198    if ( info.flags & ROAR_FLAG_SOURCE ) 
     199     strcat(flags, "source "); 
     200 
     201    printf("Flags                 : %s\n", flags); 
     202   } 
    186203  } 
    187204  display_mixer(con, id[i]); 
     
    368385  if ( strcmp(k, "--server") == 0 ) { 
    369386   server = argv[++i]; 
     387  } else if ( strcmp(k, "-v") == 0 || strcmp(k, "--verbose") == 0 ) { 
     388   g_verbose++; 
    370389  } else if ( strcmp(k, "--help") == 0 ) { 
    371390   usage(); 
  • roard/req.c

    r769 r963  
    448448int req_on_get_stream_para (int client, struct roar_message * mes, char * data) { 
    449449 struct roar_stream * s; 
     450 struct roar_stream_server * ss; 
    450451 struct roar_audio_info * audio_info; 
    451452 uint16_t * d = (uint16_t *) mes->data; 
     
    459460 } 
    460461 
    461  if ( streams_get(mes->stream, (struct roar_stream_server **)&s) == -1 ) { 
     462 if ( streams_get(mes->stream, &ss) == -1 ) { 
    462463  ROAR_WARN("req_on_get_stream_para(*): request on non existing (or other error?) stream %i", mes->stream); 
    463464  return -1; 
    464465 } 
     466 
     467 s = ROAR_STREAM(ss); 
    465468 
    466469 audio_info = &(s->info); 
     
    471474 } 
    472475 
    473  mes->datalen = 2*6; 
     476 mes->datalen = 2*7; 
    474477 
    475478 d[2] = ROAR_OUTPUT_CALC_OUTBUFSIZE(audio_info); 
    476  d[3] = ROAR_STREAM_SERVER(s)->pre_underruns; 
    477  d[4] = ROAR_STREAM_SERVER(s)->post_underruns; 
    478  d[5] = ROAR_STREAM_SERVER(s)->codec_orgi; 
     479 d[3] = ss->pre_underruns; 
     480 d[4] = ss->post_underruns; 
     481 d[5] = ss->codec_orgi; 
     482 d[6] = ROAR_FLAG_NONE | (ss->primary ? ROAR_FLAG_PRIMARY : 0) | (ss->driver_id != -1 ? ROAR_FLAG_OUTPUT : 0); 
    479483 
    480484 for (i = 0; i < mes->datalen/2; i++) { 
Note: See TracChangeset for help on using the changeset viewer.