Changeset 5763:83d26dff8492 in roaraudio for roard


Ignore:
Timestamp:
11/21/12 03:54:14 (7 years ago)
Author:
phi
Branch:
default
Message:

Moved notify debugging support out of roard into plugin debug-notify.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • roard/roard.c

    r5754 r5763  
    104104#endif 
    105105 
    106 void dbg_notify_cb(struct roar_notify_core * core, struct roar_event * event, void * userdata) { 
    107  char buf[1024] = ""; 
    108  char estr[1024] = "/* ROAR_??? */"; 
    109  char ttstr[1024] = "/* ROAR_OT_??? */"; 
    110  const char * ttname; 
    111  uint32_t ev = ROAR_EVENT_GET_TYPE(event); 
    112  int i; 
    113  
    114  ttname = roar_ot2str(event->target_type); 
    115  if ( ttname != NULL ) { 
    116   snprintf(ttstr, sizeof(ttstr)-1, "/* ROAR_OT_%s */", ttname); 
    117   buf[sizeof(ttstr)-1] = 0; 
    118   for (i = 0; ttstr[i] != 0; i++) 
    119    if ( islower(ttstr[i]) ) 
    120     ttstr[i] = toupper(ttstr[i]); 
    121  } 
    122  
    123  if ( ev == ROAR_NOTIFY_SPECIAL ) { 
    124   snprintf(estr, sizeof(estr)-1, "/* ROAR_NOTIFY_SPECIAL */"); 
    125  } else if ( ROAR_NOTIFY_IS_CMD(ev) ) { 
    126   if ( command_get_name(ROAR_NOTIFY_EVENT2CMD(ev), &ttname) == -1 ) { 
    127    snprintf(estr, sizeof(estr)-1, "/* ROAR_NOTIFY_CMD2EVENT(%lu) */", (long unsigned int)ROAR_NOTIFY_EVENT2CMD(ev)); 
    128   } else { 
    129    snprintf(estr, sizeof(estr)-1, "/* ROAR_NOTIFY_CMD2EVENT(ROAR_CMD_%s) */", ttname); 
    130    for (i = 0; estr[i] != 0; i++) 
    131     if ( islower(estr[i]) ) 
    132      estr[i] = toupper(estr[i]); 
    133   } 
    134  } else if ( ROAR_NOTIFY_IS_EGRP(ev) ) { 
    135   snprintf(estr, sizeof(estr)-1, "/* ROAR_NOTIFY_EGRP2EVENT(%lu) */", (long unsigned int)ROAR_NOTIFY_EVENT2EGRP(ev)); 
    136  } else if ( ROAR_NOTIFY_IS_OE(ev) ) { 
    137   switch (ev) { 
    138    // OE basics: 
    139    case ROAR_OE_BASICS_CHANGE_STATE: 
    140      snprintf(estr, sizeof(estr)-1, "/* ROAR_OE_BASICS_CHANGE_STATE */"); 
    141     break; 
    142    case ROAR_OE_BASICS_CHANGE_FLAGS: 
    143      snprintf(estr, sizeof(estr)-1, "/* ROAR_OE_BASICS_CHANGE_FLAGS */"); 
    144     break; 
    145    case ROAR_OE_BASICS_NEW: 
    146      snprintf(estr, sizeof(estr)-1, "/* ROAR_OE_BASICS_NEW */"); 
    147     break; 
    148    case ROAR_OE_BASICS_DELETE: 
    149      snprintf(estr, sizeof(estr)-1, "/* ROAR_OE_BASICS_DELETE */"); 
    150     break; 
    151    // OE Streams: 
    152    case ROAR_OE_STREAM_CHANGE_VOLUME: 
    153      snprintf(estr, sizeof(estr)-1, "/* ROAR_OE_STREAM_CHANGE_VOLUME */"); 
    154     break; 
    155    case ROAR_OE_STREAM_XRUN: 
    156      snprintf(estr, sizeof(estr)-1, "/* ROAR_OE_STREAM_XRUN */"); 
    157     break; 
    158    case ROAR_OE_STREAM_META_UPDATE: 
    159      snprintf(estr, sizeof(estr)-1, "/* ROAR_OE_STREAM_META_UPDATE */"); 
    160     break; 
    161    // OE Default: 
    162    default: 
    163      snprintf(estr, sizeof(estr)-1, "/* ROAR_NOTIFY_OE2EVENT(%lu) */", (long unsigned int)ROAR_NOTIFY_EVENT2OE(ev)); 
    164     break; 
    165   } 
    166  } else if ( ROAR_NOTIFY_IS_USER(ev) ) { 
    167   snprintf(estr, sizeof(estr)-1, "/* ROAR_NOTIFY_USER2EVENT(%lu) */", (long unsigned int)ROAR_NOTIFY_EVENT2USER(ev)); 
    168  } 
    169  
    170  buf[sizeof(estr)-1] = 0; 
    171  
    172  if ( event->flags & ROAR_EVENT_FLAG_PROXYEVENT ) { 
    173   snprintf(buf, sizeof(buf)-1, ".event_proxy=0x%.8x%s, ", (int)event->event_proxy, estr); 
    174   buf[sizeof(buf)-1] = 0; 
    175  } 
    176  
    177  ROAR_INFO("dbg_notify_cb(core=%p, event=%p{.flags=0x%.8x, event=0x%.8x%s, %s.emitter=%i, .target=%i, .target_type=%i%s, .arg0=%i, .arg1=%i, .arg2=%p}, userdata=%p) = (void)", 
    178            0 /* always print: minlevel = 0 */, 
    179            core, event, 
    180            (int)event->flags, 
    181            (int)event->event, 
    182            (event->flags & ROAR_EVENT_FLAG_PROXYEVENT ? "" : estr), 
    183            buf, 
    184            event->emitter, 
    185            event->target, 
    186            event->target_type, 
    187            ttstr, 
    188            event->arg0, 
    189            event->arg1, 
    190            event->arg2, 
    191            userdata); 
    192 } 
    193  
    194 void dbg_notify_cb_register (void) { 
    195  struct roar_event event; 
    196  
    197  memset(&event, 0, sizeof(event)); 
    198  
    199  event.event = ROAR_EGRP_ANY_EVENT; 
    200  
    201  event.emitter = -1; 
    202  event.target = -1; 
    203  event.target_type = -1; 
    204  
    205  roar_notify_core_subscribe(NULL, &event, dbg_notify_cb, NULL); 
    206 } 
    207  
    208106#ifdef ROAR_HAVE_MAIN_ARGS 
    209107void usage (void) { 
     
    15571455 } 
    15581456 
    1559 #ifdef DEBUG 
    1560  // enable early in case we have DEBUG set. 
    1561  dbg_notify_cb_register(); 
    1562 #endif 
    1563  
    15641457 rolestack_init(); 
    15651458 
     
    23892282#endif 
    23902283 
    2391 #ifndef DEBUG 
    2392  // notify dbg if requested, if in DEBUG mode 
    2393  // do not able because it got enabled early. 
    2394  if ( g_verbose >= 4 ) 
    2395   dbg_notify_cb_register(); 
    2396 #endif 
     2284 // if g_verbose is high we load external debugging modules. 
     2285 if ( g_verbose >= 4 ) { 
     2286  if ( plugins_load("debug-notify", NULL) == -1 ) { 
     2287   ROAR_WARN("main(*): Can not load debugger plugin: %s", roar_error2str(roar_error)); 
     2288  } 
     2289 } 
    23972290 
    23982291 if ( af_mode != AF_MODE_NONE ) { 
Note: See TracChangeset for help on using the changeset viewer.