Good day.
I`m a happy user that your nice TimerFreeTone libray for years with several esp8266 projects, but now I need to update ESP core to lastest 2.4.2 release and your library seems have issues to compile propperly.
When I try to compile arduino IDE raise several errors about it:
C:\Users\IEUser\Documents\Arduino\libraries\TimerFreeTone\TimerFreeTone.cpp: In function 'void TimerFreeTone(uint8_t, long unsigned int, unsigned int, uint8_t)':
C:\Users\IEUser\Documents\Arduino\libraries\TimerFreeTone\TimerFreeTone.cpp:18:56: error: no matching function for call to 'min(uint8_t&, int)'
uint32_t duty = frequency / _tft_volume[min(volume, 10) - 1]; // Calculate the duty cycle (volume).
^
C:\Users\IEUser\Documents\Arduino\libraries\TimerFreeTone\TimerFreeTone.cpp:18:56: note: candidates are:
In file included from c:\users\ieuser\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\algorithm:62:0,
from C:\Users\IEUser\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2\cores\esp8266/Arduino.h:255,
from C:\Users\IEUser\Documents\Arduino\libraries\TimerFreeTone\TimerFreeTone.h:59,
from C:\Users\IEUser\Documents\Arduino\libraries\TimerFreeTone\TimerFreeTone.cpp:8:
c:\users\ieuser\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_algo.h:4226:5: note: template<class _Tp, class _Compare> _Tp std::min(std::initializer_list<_Tp>, _Compare)
min(initializer_list<_Tp> __l, _Compare __comp)
^
c:\users\ieuser\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_algo.h:4226:5: note: template argument deduction/substitution failed:
C:\Users\IEUser\Documents\Arduino\libraries\TimerFreeTone\TimerFreeTone.cpp:18:56: note: mismatched types 'std::initializer_list<_Tp>' and 'unsigned char'
uint32_t duty = frequency / _tft_volume[min(volume, 10) - 1]; // Calculate the duty cycle (volume).
^
In file included from c:\users\ieuser\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\algorithm:62:0,
from C:\Users\IEUser\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2\cores\esp8266/Arduino.h:255,
from C:\Users\IEUser\Documents\Arduino\libraries\TimerFreeTone\TimerFreeTone.h:59,
from C:\Users\IEUser\Documents\Arduino\libraries\TimerFreeTone\TimerFreeTone.cpp:8:
c:\users\ieuser\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_algo.h:4221:5: note: template _Tp std::min(std::initializer_list<_Tp>)
min(initializer_list<_Tp> __l)
^
c:\users\ieuser\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_algo.h:4221:5: note: template argument deduction/substitution failed:
C:\Users\IEUser\Documents\Arduino\libraries\TimerFreeTone\TimerFreeTone.cpp:18:56: note: mismatched types 'std::initializer_list<_Tp>' and 'unsigned char'
uint32_t duty = frequency / _tft_volume[min(volume, 10) - 1]; // Calculate the duty cycle (volume).
^
In file included from c:\users\ieuser\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\algorithm:61:0,
from C:\Users\IEUser\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2\cores\esp8266/Arduino.h:255,
from C:\Users\IEUser\Documents\Arduino\libraries\TimerFreeTone\TimerFreeTone.h:59,
from C:\Users\IEUser\Documents\Arduino\libraries\TimerFreeTone\TimerFreeTone.cpp:8:
c:\users\ieuser\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_algobase.h:239:5: note: template<class _Tp, class _Compare> const _Tp& std::min(const _Tp&, const _Tp&, _Compare)
min(const _Tp& __a, const _Tp& __b, _Compare __comp)
^
c:\users\ieuser\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_algobase.h:239:5: note: template argument deduction/substitution failed:
C:\Users\IEUser\Documents\Arduino\libraries\TimerFreeTone\TimerFreeTone.cpp:18:56: note: deduced conflicting types for parameter 'const _Tp' ('unsigned char' and 'int')
uint32_t duty = frequency / _tft_volume[min(volume, 10) - 1]; // Calculate the duty cycle (volume).
^
In file included from c:\users\ieuser\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\algorithm:61:0,
from C:\Users\IEUser\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2\cores\esp8266/Arduino.h:255,
from C:\Users\IEUser\Documents\Arduino\libraries\TimerFreeTone\TimerFreeTone.h:59,
from C:\Users\IEUser\Documents\Arduino\libraries\TimerFreeTone\TimerFreeTone.cpp:8:
c:\users\ieuser\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_algobase.h:193:5: note: template const _Tp& std::min(const _Tp&, const _Tp&)
min(const _Tp& __a, const _Tp& __b)
^
c:\users\ieuser\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_algobase.h:193:5: note: template argument deduction/substitution failed:
C:\Users\IEUser\Documents\Arduino\libraries\TimerFreeTone\TimerFreeTone.cpp:18:56: note: deduced conflicting types for parameter 'const _Tp' ('unsigned char' and 'int')
uint32_t duty = frequency / _tft_volume[min(volume, 10) - 1]; // Calculate the duty cycle (volume).
^
I dont know if you have any way to solve it, because I like so much your library and always had worked like a charm.
Thank you