Changeset 2081:09d05ec16ba3 in roaraudio for plugins/gstreamer0.10


Ignore:
Timestamp:
07/19/09 07:02:55 (15 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

get meta data from roard, stream names still don't work..

File:
1 edited

Legend:

Unmodified
Added
Removed
  • plugins/gstreamer0.10/roarmixer.c

    r2080 r2081  
    364364  GstMixerTrack *track; 
    365365  struct roar_stream s; 
     366  struct roar_client c; 
     367  struct roar_meta   m; 
    366368  gint flags = 0; 
    367369  gchar buf[1024]; 
     370  int num; 
     371  int id[ROAR_CLIENTS_MAX]; 
     372  char * clientname = NULL; 
     373  char * metaname   = NULL; 
     374  char   streamname[1024] = {0}; 
     375  gint i, h; 
    368376 
    369377  ROAR_WARN("gst_roarmixer_track_new(mixer=%p, stream_id=%i) = ?", mixer, stream_id); 
     
    372380    return NULL; 
    373381  } 
     382 
     383 // TODO: find something more efficent: 
     384 
     385 if ( (num = roar_list_clients(&(mixer->con), id, ROAR_CLIENTS_MAX)) != -1 ) { 
     386  for (i = 0; i < num; i++) { 
     387   ROAR_WARN("gst_roarmixer_track_new(*): stream %i -->> client %i?", stream_id, id[i]); 
     388   if ( roar_get_client(&(mixer->con), &c, id[i]) != -1 ) { 
     389    for (h = 0; h < ROAR_CLIENTS_MAX_STREAMS_PER_CLIENT; h++) { 
     390     ROAR_WARN("gst_roarmixer_track_new(*): stream %i <-> %i -->> client %i?", stream_id, c.streams[h], id[i]); 
     391     if ( c.streams[h] == stream_id ) { 
     392      clientname = c.name; 
     393      h = ROAR_CLIENTS_MAX_STREAMS_PER_CLIENT; 
     394      i = num; 
     395     } 
     396    } 
     397   } 
     398  } 
     399 } 
     400 
     401 m.type = ROAR_META_TYPE_TITLE; 
     402 if ( roar_stream_meta_get(&(mixer->con), &s, &m) != -1 ) { 
     403  metaname = m.value; 
     404 } 
     405 
     406 if ( roar_stream_get_name(&(mixer->con), &s, streamname, 1024) == 0 ) 
     407  *streamname = 0; 
    374408 
    375409  switch (s.dir) { 
     
    384418  } 
    385419 
    386   sprintf(buf, "Stream %i", stream_id); 
     420  if ( !*streamname && metaname == NULL ) 
     421   sprintf(streamname, "[Stream %i]", stream_id); 
     422 
     423  sprintf(buf, "%s\n%s",  clientname ? clientname : "[Unknown]", 
     424                         *streamname ? streamname : metaname 
     425                         ); 
    387426 
    388427  roartrack = g_object_new(GST_TYPE_ROARMIXER_TRACK, NULL); 
Note: See TracChangeset for help on using the changeset viewer.