diff options
Diffstat (limited to 'hidio.c')
-rw-r--r-- | hidio.c | 33 |
1 files changed, 12 insertions, 21 deletions
@@ -286,31 +286,21 @@ static short get_device_number_from_arguments(int argc, t_atom *argv) } -void hidio_output_event(t_hidio *x, t_hid_element *output_data) +/* output_message[3] is pre-generated by hidio_build_element_list() and + * stored in t_hid_element, then just the value is updated. This saves a bit + * of CPU time since this is run for every event that is output. */ +void hidio_output_event(t_hidio *x, t_hid_element *output_element) { - if( (output_data->relative) || // relative data should always be output - (output_data->value != output_data->previous_value) ) - { /* debug_post(LOG_DEBUG,"hidio_output_event: instance %d/%d last: %llu", x->x_instance+1, hidio_instance_count, last_execute_time[x->x_device_number]);*/ - t_atom event_data[3]; - /* TODO: this output message should be stored in t_hid_element, then just - * the value updated. That would save a bit of CPU time since this is - * run for every event that is output. */ #ifdef PD - SETSYMBOL(event_data, output_data->name); - SETFLOAT(event_data + 1, output_data->instance); - SETFLOAT(event_data + 2, output_data->value); + SETFLOAT(output_element->output_message + 2, output_element->value); #else /* Max */ - atom_setsym(event_data, output_data->name); - //TODO: why is this line repeated? - atom_setsym(event_data, output_data->name); - atom_setlong(event_data + 1, (long)output_data->instance); - atom_setlong(event_data + 2, (long)output_data->value); + atom_setlong(output_element->output_message + 2, (long)output_element->value); #endif /* PD */ - outlet_anything(x->x_data_outlet, output_data->type, 3, event_data); - } + outlet_anything(x->x_data_outlet, output_element->type, 3, + output_element->output_message); } @@ -454,10 +444,11 @@ static void hidio_tick(t_hidio *x) // debug_post(LOG_DEBUG,"hidio_tick"); t_hid_element *current_element; unsigned int i; -#ifdef PD - double right_now = clock_getlogicaltime(); -#else double right_now; + +#ifdef PD + right_now = clock_getlogicaltime(); +#else /* Max */ clock_getftime(&right_now); #endif /* PD */ |