diff --git a/main/osc_control.c b/main/osc_control.c --- a/main/osc_control.c +++ b/main/osc_control.c @@ -17,14 +17,15 @@ static const char *TAG = "osc_control"; esp_osc_client_t client; -static void sender() { +static void sender() +{ // select targets esp_osc_target_t targets[2] = { esp_osc_target("127.0.0.1", 9000), esp_osc_target(OSC_ADDRESS, OSC_PORT), }; - for (;;) { + for(;;) { // delay vTaskDelay(1000 / portTICK_PERIOD_MS); @@ -35,7 +36,9 @@ static void sender() { } } -static bool callback(const char *topic, const char *format, esp_osc_value_t *values) { + +static bool callback(const char *topic, const char *format, esp_osc_value_t *values) +{ // log message ESP_LOGI(TAG, "got message: %s (%s)", topic, format); @@ -43,31 +46,51 @@ static bool callback(const char *topic, char out[512] = {0}; snprintf(out, 128, "topic: %s\nformat: %s\n", topic, format); - for (size_t i = 0; i < strlen(format); i++) { - switch (format[i]) { + for (size_t i = 0; i < strlen(format); i++) + { + switch (format[i]) + { case 'i': + { + snprintf(out+strlen(out), 128-strlen(out), "Value: %ld", values[i].i); ESP_LOGI(TAG, "==> i: %ld", values[i].i); - break; + if(strcmp(topic, "/led_effect") == 0) + { + ledstrip_set_effect(values[i].i); + } + } break; + case 'h': + { ESP_LOGI(TAG, "==> h: %lld", values[i].h); - break; + } break; + case 'f': + { snprintf(out+strlen(out), 128-strlen(out), "Value: %f", values[i].f); ESP_LOGI(TAG, "==> f: %f", values[i].f); - uint8_t val = values[i].f * 255; - // ledstrip_set(val, val, val); - ledstrip_set_modifier(values[i].f); + if(strcmp(topic, "/led_modifier") == 0) + { + ledstrip_set_modifier(values[i].f); + } + } break; - break; case 'd': + { ESP_LOGI(TAG, "==> d: %f", values[i].d); - break; + } break; + case 's': + { ESP_LOGI(TAG, "==> s: %s", values[i].s); - break; + } break; + case 'b': + { ESP_LOGI(TAG, "==> b: %.*s (%d)", values[i].bl, values[i].b, values[i].bl); break; + } + } }