Fix: add copy assignment functions to Wavetable and Wave
parent
6aa0f72afb
commit
0b2d815509
12
src/wave.h
12
src/wave.h
|
|
@ -37,6 +37,18 @@ public:
|
||||||
m_tp = newWave.m_tp;
|
m_tp = newWave.m_tp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Wave &operator=(const Wave &newWave)
|
||||||
|
{
|
||||||
|
if (this == &newWave) return *this;
|
||||||
|
delete m_tp;
|
||||||
|
m_tp = nullptr;
|
||||||
|
m_tp = new float_t[DEFAULT_N_WAVES];
|
||||||
|
for (uint16_t i = 0; i < DEFAULT_N_WAVES; i++) {
|
||||||
|
*(m_tp + i) = newWave.m_tp[i];
|
||||||
|
}
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
~Wave()
|
~Wave()
|
||||||
{
|
{
|
||||||
delete m_tp;
|
delete m_tp;
|
||||||
|
|
|
||||||
|
|
@ -24,14 +24,35 @@ private:
|
||||||
Wave *m_wtp; /*!< Pointer to table of Waves */
|
Wave *m_wtp; /*!< Pointer to table of Waves */
|
||||||
|
|
||||||
public:
|
public:
|
||||||
const uint16_t m_cid; /*!< Unique ID of wavetable */
|
uint16_t m_cid; /*!< Unique ID of wavetable */
|
||||||
Wavetable(std::string name) : m_name{name}, m_cid(m_nid++)
|
Wavetable(std::string name) : m_name{name}, m_cid(m_nid++)
|
||||||
{
|
{
|
||||||
// Allocate Wavetable memory
|
// Allocate Wavetable memory
|
||||||
m_wtp = new Wave[DEFAULT_N_WAVES];
|
m_wtp = new Wave[DEFAULT_N_WAVES];
|
||||||
}
|
}
|
||||||
|
|
||||||
~Wavetable() {
|
Wavetable(const Wavetable& newWavetable)
|
||||||
|
{
|
||||||
|
m_nid = newWavetable.m_nid;
|
||||||
|
m_cid = newWavetable.m_cid;
|
||||||
|
m_name = newWavetable.m_name;
|
||||||
|
m_wtp = newWavetable.m_wtp;
|
||||||
|
}
|
||||||
|
|
||||||
|
Wavetable& operator=(const Wavetable& newWavetable)
|
||||||
|
{
|
||||||
|
if (this == &newWavetable) return *this;
|
||||||
|
delete m_wtp;
|
||||||
|
m_wtp = nullptr;
|
||||||
|
m_wtp = new Wave[DEFAULT_N_WAVES];
|
||||||
|
for (uint16_t i = 0; i < DEFAULT_N_WAVES; i++) {
|
||||||
|
*(m_wtp + i) = newWavetable.m_wtp[i];
|
||||||
|
}
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
~Wavetable()
|
||||||
|
{
|
||||||
delete m_wtp;
|
delete m_wtp;
|
||||||
m_wtp = nullptr;
|
m_wtp = nullptr;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue