pschatzmann / ESP32-A2DP

A Simple ESP32 Bluetooth A2DP Library (to implement a Music Receiver or Sender) that supports Arduino, PlatformIO and Espressif IDF
Apache License 2.0
1.67k stars 275 forks source link

Make compile with pioarduino 3.0.5 (ESP-IDF 5.1.4) #605

Closed tueddy closed 2 weeks ago

tueddy commented 2 weeks ago

Problem Description

Hi PSchatzmann, due to lack of supporting Arduino 3 on PlatformIO i switched to pioarduino. This works perfectly fine! Framework versions: Arduino 3.0.5 , ESP-IDF 5.1.4

Compiling ESP32-A2DP i get some errors:

.pio/libdeps/lolin_d32_pro_sdmmc_pe/ESP32-A2DP/src/BluetoothA2DPSink.cpp:285:41: error: 'portTickType' was not declared in this scope 285 | (portTickType)portMAX_DELAY)) { | ^~~~~~~~~~~~ and C:/Users/dcars/.platformio/packages/framework-espidf@src-29cf07cc82e49157db19869ff2d1be3f/components/freertos/FreeRTOS-Kernel/portable/xtensa/include/freertos/portmacro.h:125:36: error: expected primary-expression before ')' token 125 | #define portMAX_DELAY ( TickType_t ) 0xffffffffUL |

I changed this line

https://github.com/pschatzmann/ESP32-A2DP/blob/3624fe3f23c8a4d181f891910f5b62dc87a51105/src/BluetoothA2DPCommon.h#L94

to

#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(5, 1 , 4)

and everything compiles. Can you fix it?

Thanks & best Dirk

Device Description

Lolin D32 pro

Sketch

demo sketch

Other Steps to Reproduce

No response

Provide your Version of the EP32 Arduino Core (or the IDF Version)

Arduino 3.0.5, ESP-IDF 5.1.4

I have checked existing issues, discussions and online documentation

pschatzmann commented 2 weeks ago

Strange, I can not reproduce your issue. Arduino 3.0.5 is compiling quite fine. However I removed the oblsolete portTickType from the code. I hope this fixes your problem as well...

tueddy commented 2 weeks ago

Thank's for the very fast fix! Unfortunatly this doesn't solve the compile error, i get another one now:

.pio/libdeps/lolin_d32_pro_sdmmc_pe/ESP32-A2DP/src/BluetoothA2DPSource.cpp:287:49: error: 'portTICK_RATE_MS' was not declared in this scope; did you mean 'portTICK_PERIOD_MS'? 287 | if (xQueueSend(s_bt_app_task_queue, msg, 10 / portTICK_RATE_MS) != pdTRUE) { | ^~~~~~~~~~~~~~~~

Very strange, my ESP-IDF version is 5.1.4:

PACKAGES:

I complie with Arduino as component, maybe this makes a difference?

pschatzmann commented 2 weeks ago

can you share some minimal code to reproduce the issue ? I think the platformio.ini should be good enough On the Platforms did you run an update to make sure you have the actual versions ?