Changeset 5920:749a4a6a1413 in roaraudio for roard/light.c


Ignore:
Timestamp:
09/11/13 11:25:17 (11 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

added very basic support to handle RoarDMX events

File:
1 edited

Legend:

Unmodified
Added
Removed
  • roard/light.c

    r5918 r5920  
    104104 memset(g_light_state.state,   0, g_light_state.channels); 
    105105 memset(g_light_state.changes, 0, g_light_state.channels); 
     106 memset(g_light_state.events,  0, sizeof(g_light_state.events)); 
     107 
     108 g_light_state.eventsqueuelen = 0; 
    106109 
    107110 return 0; 
     
    113116 
    114117 memset(g_light_state.changes, 0, g_light_state.channels); 
     118 memset(g_light_state.events,  0, sizeof(g_light_state.events)); 
     119 
     120 g_light_state.eventsqueuelen = 0; 
    115121 
    116122 return 0; 
     
    236242} 
    237243 
     244int light_dmxevent_add(const uint8_t * events, size_t len) { 
     245 size_t i; 
     246 
     247 if ( events == NULL ) { 
     248  roar_err_set(ROAR_ERROR_FAULT); 
     249  return -1; 
     250 } 
     251 
     252 if ( len > (sizeof(g_light_state.events) - g_light_state.eventsqueuelen) ) { 
     253  roar_err_set(ROAR_ERROR_NOSPC); 
     254  return -1; 
     255 } 
     256 
     257 for (i = 0; i < len; i++) { 
     258  g_light_state.events[g_light_state.eventsqueuelen++] = events[i]; 
     259  roar_notify_core_emit_simple(ROAR_DATA_DMX512_EVENT, -1, g_light_mixer.stream, ROAR_OT_STREAM, events[i], -1, NULL, -1); 
     260 } 
     261 
     262 return 0; 
     263} 
     264 
     265int light_dmxevent_read(const uint8_t ** events, size_t * len) { 
     266 if ( events == NULL || len == NULL ) { 
     267  roar_err_set(ROAR_ERROR_FAULT); 
     268  return -1; 
     269 } 
     270 
     271 *events = g_light_state.events; 
     272 *len    = g_light_state.eventsqueuelen; 
     273 
     274 return 0; 
     275} 
     276 
    238277#endif 
    239278 
Note: See TracChangeset for help on using the changeset viewer.