diff --git a/src/SigmaDSP.cpp b/src/SigmaDSP.cpp index 15fc83d..3129500 100644 --- a/src/SigmaDSP.cpp +++ b/src/SigmaDSP.cpp @@ -884,16 +884,6 @@ void SigmaDSP::muteDAC(bool mute) } -template -void SigmaDSP::safeload_write(const Address &address, const Data1 &data1, const DataN &...dataN) -{ - // Store passed address - _dspRegAddr = address; - - safeload_write_wrapper(data1, dataN...); -} - - /*************************************** Function: safeload_writeRegister() Purpose: Writes 5 bytes of data to the parameter memory of the DSP, the first byte is 0x00 @@ -945,6 +935,16 @@ void SigmaDSP::safeload_writeRegister(uint16_t memoryAddress, float data, bool f safeload_writeRegister(memoryAddress, dataArray, finished); } +#if defined(ARDUINO_ARCH_ESP8266) || defined(ARDUINO_ARCH_ESP32) + void SigmaDSP::safeload_writeRegister(uint16_t memoryAddress, int16_t data, bool finished) { safeload_writeRegister(memoryAddress, (int32_t)data, finished); } +#else + void SigmaDSP::safeload_writeRegister(uint16_t memoryAddress, int data, bool finished) { safeload_writeRegister(memoryAddress, (int32_t)data, finished); } +#endif +void SigmaDSP::safeload_writeRegister(uint16_t memoryAddress, uint32_t data, bool finished) { safeload_writeRegister(memoryAddress, (int32_t)data, finished); } +void SigmaDSP::safeload_writeRegister(uint16_t memoryAddress, uint16_t data, bool finished) { safeload_writeRegister(memoryAddress, (int32_t)data, finished); } +void SigmaDSP::safeload_writeRegister(uint16_t memoryAddress, uint8_t data, bool finished) { safeload_writeRegister(memoryAddress, (int32_t)data, finished); } +void SigmaDSP::safeload_writeRegister(uint16_t memoryAddress, double data, bool finished) { safeload_writeRegister(memoryAddress, (float)data, finished); } + /*************************************** Function: writeRegister() diff --git a/src/SigmaDSP.h b/src/SigmaDSP.h index ddca06b..aa74781 100644 --- a/src/SigmaDSP.h +++ b/src/SigmaDSP.h @@ -135,20 +135,29 @@ class SigmaDSP // Template wrapper for safeload_writeRegister // Handles both int 28.0 and float 5.23 formatted parameters // Usage: safeload_write(uint16_t startMemoryAddress, data1, data2, ..., dataN); + //template + //void safeload_write(const Address &address, const Data1 &data1, const DataN &...dataN); + template - void safeload_write(const Address &address, const Data1 &data1, const DataN &...dataN); + void safeload_write(const Address &address, const Data1 &data1, const DataN &...dataN) + { + // Store passed address + _dspRegAddr = address; + safeload_write_wrapper(data1, dataN...); + } - void safeload_writeRegister(uint16_t memoryAddress, uint8_t *data, bool finished); - void safeload_writeRegister(uint16_t memoryAddress, int32_t data, bool finished); - void safeload_writeRegister(uint16_t memoryAddress, float data, bool finished); + void safeload_writeRegister(uint16_t memoryAddress, uint8_t *data, bool finished); + void safeload_writeRegister(uint16_t memoryAddress, int32_t data, bool finished); + void safeload_writeRegister(uint16_t memoryAddress, float data, bool finished); #if defined(ARDUINO_ARCH_ESP8266) || defined(ARDUINO_ARCH_ESP32) - void safeload_writeRegister(uint16_t memoryAddress, int16_t data, bool finished) { safeload_writeRegister(memoryAddress, (int32_t)data, finished); } + void safeload_writeRegister(uint16_t memoryAddress, int16_t data, bool finished); #else - void safeload_writeRegister(uint16_t memoryAddress, int data, bool finished) { safeload_writeRegister(memoryAddress, (int32_t)data, finished); } + void safeload_writeRegister(uint16_t memoryAddress, int data, bool finished); #endif - void safeload_writeRegister(uint16_t memoryAddress, uint16_t data, bool finished) { safeload_writeRegister(memoryAddress, (int32_t)data, finished); } - void safeload_writeRegister(uint16_t memoryAddress, uint8_t data, bool finished) { safeload_writeRegister(memoryAddress, (int32_t)data, finished); } - void safeload_writeRegister(uint16_t memoryAddress, double data, bool finished) { safeload_writeRegister(memoryAddress, (float)data, finished); } + void safeload_writeRegister(uint16_t memoryAddress, uint32_t data, bool finished); + void safeload_writeRegister(uint16_t memoryAddress, uint16_t data, bool finished); + void safeload_writeRegister(uint16_t memoryAddress, uint8_t data, bool finished); + void safeload_writeRegister(uint16_t memoryAddress, double data, bool finished); void writeRegister(uint16_t memoryAddress, uint8_t length, uint8_t *data); void writeRegister(uint16_t memoryAddress, uint8_t length, const uint8_t *data); void writeRegisterBlock(uint16_t memoryAddress, uint16_t length, const uint8_t *data, uint8_t registerSize);