Changeset 5931:238a9651c499 in roaraudio


Ignore:
Timestamp:
09/11/13 17:27:28 (6 years ago)
Author:
phi
Branch:
default
Message:

added database functions for RoarDMX event names

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • include/libroarlight/roardmx.h

    r5928 r5931  
    9191}; 
    9292 
     93// database access: 
     94int roar_roardmx_str2event(const char * event); 
     95const char * roar_roardmx_event2str(const int event); 
     96 
    9397// generic things: 
    9498int roar_roardmx_message_new (struct roar_roardmx_message * mes); 
  • libroarlight/roardmx.c

    r5926 r5931  
    2929#define BCHK(x) if ( (x) == NULL ) { roar_err_set(ROAR_ERROR_FAULT); return -1; } 
    3030 
     31// database access: 
     32static const struct { 
     33 const int id; 
     34 const char * const name; 
     35} __eventnames[] = { 
     36//$ grep '^#define ROAR_ROARDMX_EVENT_' roardmx.h | cut -d ' ' -f2 | while read line; do name=`echo $line | cut -d_ -f4 | tr A-Z a-z`; for suffix in beat off on hold; do printf " {%-56s \"%s\"},\n" "$line|ROAR_ROARDMX_ETYPE_`tr a-z A-Z <<<$suffix`," $name-$suffix; done; printf " {%-56s \"%s\"},\n" $line, $name; done 
     37 {ROAR_ROARDMX_EVENT_NONE|ROAR_ROARDMX_ETYPE_BEAT,         "none-beat"}, 
     38 {ROAR_ROARDMX_EVENT_NONE|ROAR_ROARDMX_ETYPE_OFF,          "none-off"}, 
     39 {ROAR_ROARDMX_EVENT_NONE|ROAR_ROARDMX_ETYPE_ON,           "none-on"}, 
     40 {ROAR_ROARDMX_EVENT_NONE|ROAR_ROARDMX_ETYPE_HOLD,         "none-hold"}, 
     41 {ROAR_ROARDMX_EVENT_NONE,                                 "none"}, 
     42 {ROAR_ROARDMX_EVENT_STEP|ROAR_ROARDMX_ETYPE_BEAT,         "step-beat"}, 
     43 {ROAR_ROARDMX_EVENT_STEP|ROAR_ROARDMX_ETYPE_OFF,          "step-off"}, 
     44 {ROAR_ROARDMX_EVENT_STEP|ROAR_ROARDMX_ETYPE_ON,           "step-on"}, 
     45 {ROAR_ROARDMX_EVENT_STEP|ROAR_ROARDMX_ETYPE_HOLD,         "step-hold"}, 
     46 {ROAR_ROARDMX_EVENT_STEP,                                 "step"}, 
     47 {ROAR_ROARDMX_EVENT_TAP|ROAR_ROARDMX_ETYPE_BEAT,          "tap-beat"}, 
     48 {ROAR_ROARDMX_EVENT_TAP|ROAR_ROARDMX_ETYPE_OFF,           "tap-off"}, 
     49 {ROAR_ROARDMX_EVENT_TAP|ROAR_ROARDMX_ETYPE_ON,            "tap-on"}, 
     50 {ROAR_ROARDMX_EVENT_TAP|ROAR_ROARDMX_ETYPE_HOLD,          "tap-hold"}, 
     51 {ROAR_ROARDMX_EVENT_TAP,                                  "tap"}, 
     52 {ROAR_ROARDMX_EVENT_BEAT|ROAR_ROARDMX_ETYPE_BEAT,         "beat-beat"}, 
     53 {ROAR_ROARDMX_EVENT_BEAT|ROAR_ROARDMX_ETYPE_OFF,          "beat-off"}, 
     54 {ROAR_ROARDMX_EVENT_BEAT|ROAR_ROARDMX_ETYPE_ON,           "beat-on"}, 
     55 {ROAR_ROARDMX_EVENT_BEAT|ROAR_ROARDMX_ETYPE_HOLD,         "beat-hold"}, 
     56 {ROAR_ROARDMX_EVENT_BEAT,                                 "beat"}, 
     57 {ROAR_ROARDMX_EVENT_BLACKOUT|ROAR_ROARDMX_ETYPE_BEAT,     "blackout-beat"}, 
     58 {ROAR_ROARDMX_EVENT_BLACKOUT|ROAR_ROARDMX_ETYPE_OFF,      "blackout-off"}, 
     59 {ROAR_ROARDMX_EVENT_BLACKOUT|ROAR_ROARDMX_ETYPE_ON,       "blackout-on"}, 
     60 {ROAR_ROARDMX_EVENT_BLACKOUT|ROAR_ROARDMX_ETYPE_HOLD,     "blackout-hold"}, 
     61 {ROAR_ROARDMX_EVENT_BLACKOUT,                             "blackout"}, 
     62 {ROAR_ROARDMX_EVENT_FULLON|ROAR_ROARDMX_ETYPE_BEAT,       "fullon-beat"}, 
     63 {ROAR_ROARDMX_EVENT_FULLON|ROAR_ROARDMX_ETYPE_OFF,        "fullon-off"}, 
     64 {ROAR_ROARDMX_EVENT_FULLON|ROAR_ROARDMX_ETYPE_ON,         "fullon-on"}, 
     65 {ROAR_ROARDMX_EVENT_FULLON|ROAR_ROARDMX_ETYPE_HOLD,       "fullon-hold"}, 
     66 {ROAR_ROARDMX_EVENT_FULLON,                               "fullon"}, 
     67 {ROAR_ROARDMX_EVENT_FLASH|ROAR_ROARDMX_ETYPE_BEAT,        "flash-beat"}, 
     68 {ROAR_ROARDMX_EVENT_FLASH|ROAR_ROARDMX_ETYPE_OFF,         "flash-off"}, 
     69 {ROAR_ROARDMX_EVENT_FLASH|ROAR_ROARDMX_ETYPE_ON,          "flash-on"}, 
     70 {ROAR_ROARDMX_EVENT_FLASH|ROAR_ROARDMX_ETYPE_HOLD,        "flash-hold"}, 
     71 {ROAR_ROARDMX_EVENT_FLASH,                                "flash"}, 
     72 {ROAR_ROARDMX_EVENT_STROBE|ROAR_ROARDMX_ETYPE_BEAT,       "strobe-beat"}, 
     73 {ROAR_ROARDMX_EVENT_STROBE|ROAR_ROARDMX_ETYPE_OFF,        "strobe-off"}, 
     74 {ROAR_ROARDMX_EVENT_STROBE|ROAR_ROARDMX_ETYPE_ON,         "strobe-on"}, 
     75 {ROAR_ROARDMX_EVENT_STROBE|ROAR_ROARDMX_ETYPE_HOLD,       "strobe-hold"}, 
     76 {ROAR_ROARDMX_EVENT_STROBE,                               "strobe"}, 
     77 {ROAR_ROARDMX_EVENT_STROBEREADY|ROAR_ROARDMX_ETYPE_BEAT,  "strobeready-beat"}, 
     78 {ROAR_ROARDMX_EVENT_STROBEREADY|ROAR_ROARDMX_ETYPE_OFF,   "strobeready-off"}, 
     79 {ROAR_ROARDMX_EVENT_STROBEREADY|ROAR_ROARDMX_ETYPE_ON,    "strobeready-on"}, 
     80 {ROAR_ROARDMX_EVENT_STROBEREADY|ROAR_ROARDMX_ETYPE_HOLD,  "strobeready-hold"}, 
     81 {ROAR_ROARDMX_EVENT_STROBEREADY,                          "strobeready"}, 
     82 {ROAR_ROARDMX_EVENT_STROBELOAD|ROAR_ROARDMX_ETYPE_BEAT,   "strobeload-beat"}, 
     83 {ROAR_ROARDMX_EVENT_STROBELOAD|ROAR_ROARDMX_ETYPE_OFF,    "strobeload-off"}, 
     84 {ROAR_ROARDMX_EVENT_STROBELOAD|ROAR_ROARDMX_ETYPE_ON,     "strobeload-on"}, 
     85 {ROAR_ROARDMX_EVENT_STROBELOAD|ROAR_ROARDMX_ETYPE_HOLD,   "strobeload-hold"}, 
     86 {ROAR_ROARDMX_EVENT_STROBELOAD,                           "strobeload"}, 
     87 {ROAR_ROARDMX_EVENT_FOG|ROAR_ROARDMX_ETYPE_BEAT,          "fog-beat"}, 
     88 {ROAR_ROARDMX_EVENT_FOG|ROAR_ROARDMX_ETYPE_OFF,           "fog-off"}, 
     89 {ROAR_ROARDMX_EVENT_FOG|ROAR_ROARDMX_ETYPE_ON,            "fog-on"}, 
     90 {ROAR_ROARDMX_EVENT_FOG|ROAR_ROARDMX_ETYPE_HOLD,          "fog-hold"}, 
     91 {ROAR_ROARDMX_EVENT_FOG,                                  "fog"}, 
     92 {ROAR_ROARDMX_EVENT_FOGREADY|ROAR_ROARDMX_ETYPE_BEAT,     "fogready-beat"}, 
     93 {ROAR_ROARDMX_EVENT_FOGREADY|ROAR_ROARDMX_ETYPE_OFF,      "fogready-off"}, 
     94 {ROAR_ROARDMX_EVENT_FOGREADY|ROAR_ROARDMX_ETYPE_ON,       "fogready-on"}, 
     95 {ROAR_ROARDMX_EVENT_FOGREADY|ROAR_ROARDMX_ETYPE_HOLD,     "fogready-hold"}, 
     96 {ROAR_ROARDMX_EVENT_FOGREADY,                             "fogready"}, 
     97 {ROAR_ROARDMX_EVENT_FOGHEAT|ROAR_ROARDMX_ETYPE_BEAT,      "fogheat-beat"}, 
     98 {ROAR_ROARDMX_EVENT_FOGHEAT|ROAR_ROARDMX_ETYPE_OFF,       "fogheat-off"}, 
     99 {ROAR_ROARDMX_EVENT_FOGHEAT|ROAR_ROARDMX_ETYPE_ON,        "fogheat-on"}, 
     100 {ROAR_ROARDMX_EVENT_FOGHEAT|ROAR_ROARDMX_ETYPE_HOLD,      "fogheat-hold"}, 
     101 {ROAR_ROARDMX_EVENT_FOGHEAT,                              "fogheat"} 
     102}; 
     103 
     104int roar_roardmx_str2event(const char * event) { 
     105 size_t i; 
     106 
     107 if ( event == NULL ) { 
     108  roar_err_set(ROAR_ERROR_FAULT); 
     109  return -1; 
     110 } 
     111 
     112 for (i = 0; i < (sizeof(__eventnames)/sizeof(*__eventnames)); i++) 
     113  if ( !strcasecmp(event, __eventnames[i].name) ) 
     114   return __eventnames[i].id; 
     115 
     116 roar_err_set(ROAR_ERROR_NOENT); 
     117 return -1; 
     118} 
     119 
     120const char * roar_roardmx_event2str(const int event) { 
     121 size_t i; 
     122 
     123 for (i = 0; i < (sizeof(__eventnames)/sizeof(*__eventnames)); i++) 
     124  if ( __eventnames[i].id == event ) 
     125   return __eventnames[i].name; 
     126 
     127 roar_err_set(ROAR_ERROR_NOENT); 
     128 return NULL; 
     129} 
     130 
     131// generic things: 
    31132int roar_roardmx_message_new (struct roar_roardmx_message * mes) { 
    32133 BCHK(mes); 
Note: See TracChangeset for help on using the changeset viewer.