_amplitudes[0] = amplitude;\r
}\r
\r
+Tacton::Tacton(const Tacton &t)\r
+:_nbframes(t._nbframes), _patterns(new unsigned char[t._nbframes]), _durations(new unsigned int[t._nbframes]), _frequencies(new unsigned int[t._nbframes]), _amplitudes(new unsigned char[t._nbframes])\r
+{\r
+ memcpy(_patterns, t._patterns, t._nbframes * sizeof(unsigned char));\r
+ memcpy(_durations, t._durations, t._nbframes * sizeof(unsigned int));\r
+ memcpy(_frequencies, t._frequencies, t._nbframes * sizeof(unsigned int));\r
+ memcpy(_amplitudes, t._amplitudes, t._nbframes * sizeof(unsigned char));\r
+}\r
+\r
Tacton::~Tacton()\r
{\r
delete []_patterns;\r
return _nbframes;\r
}\r
\r
+__declspec(dllexport) void Tacton::setPattern(char pattern)\r
+{\r
+ setPattern(0, pattern);\r
+}\r
+\r
+__declspec(dllexport) void Tacton::setPattern(unsigned int frame, char pattern)\r
+{\r
+ if (frame < _nbframes)\r
+ _patterns[frame] = pattern;\r
+}\r
+\r
+__declspec(dllexport) void Tacton::setPattern(char *pattern)\r
+{\r
+ setPattern(0, pattern);\r
+}\r
+\r
+__declspec(dllexport) void Tacton::setPattern(unsigned int frame, char *pattern)\r
+{\r
+ if (frame < _nbframes)\r
+ {\r
+ unsigned char t1 = pattern[0] == '1';\r
+ unsigned char t2 = pattern[1] == '1';\r
+ unsigned char t3 = pattern[2] == '1';\r
+ unsigned char t4 = pattern[3] == '1';\r
+ _patterns[frame] = (t1 << 3) | (t2 << 2) | (t3 << 1) | t4;\r
+ }\r
+}\r
+\r
+__declspec(dllexport) void Tacton::setDuration(unsigned int duration)\r
+{\r
+ setDuration(0, duration);\r
+}\r
+\r
+__declspec(dllexport) void Tacton::setDuration(unsigned int frame, unsigned int duration)\r
+{\r
+ if (frame < _nbframes)\r
+ _durations[frame] = duration;\r
+}\r
+\r
+__declspec(dllexport) void Tacton::setFrequency(unsigned int frequency)\r
+{\r
+ setFrequency(0, frequency);\r
+}\r
+\r
+__declspec(dllexport) void Tacton::setFrequency(unsigned int frame, unsigned int frequency)\r
+{\r
+ if (frame < _nbframes)\r
+ _frequencies[frame] = frequency;\r
+}\r
+\r
+__declspec(dllexport) void Tacton::setAmplitude(unsigned int amplitude)\r
+{\r
+ setAmplitude(0, amplitude);\r
+}\r
+\r
+__declspec(dllexport) void Tacton::setAmplitude(unsigned int frame, unsigned int amplitude)\r
+{\r
+ if (frame < _nbframes)\r
+ _amplitudes[frame] = amplitude;\r
+}\r
+\r
void *Tacton::rawCode() const\r
{\r
unsigned char *res = new unsigned char[_nbframes * 6];\r
__declspec(dllexport) Tacton(unsigned int nbframes, unsigned char *patterns, unsigned int *durations, unsigned int *frequencies, unsigned char *amplitudes);\r
//create a simple vibration\r
__declspec(dllexport) Tacton(unsigned char pattern, unsigned int duration, unsigned int frequency, unsigned char amplitude);\r
+ __declspec(dllexport) Tacton(const Tacton &t);\r
__declspec(dllexport) ~Tacton();\r
+\r
+ //changes the pattern using raw format\r
+ __declspec(dllexport) void setPattern(char pattern);\r
+ __declspec(dllexport) void setPattern(unsigned int frame, char pattern);\r
+ //changes the pattern using string format\r
+ __declspec(dllexport) void setPattern(char *pattern);\r
+ __declspec(dllexport) void setPattern(unsigned int frame, char *pattern);\r
+ //changes the duration\r
+ __declspec(dllexport) void setDuration(unsigned int duration);\r
+ __declspec(dllexport) void setDuration(unsigned int frame, unsigned int duration);\r
+ //changes the frequency\r
+ __declspec(dllexport) void setFrequency(unsigned int frequency);\r
+ __declspec(dllexport) void setFrequency(unsigned int frame, unsigned int frequency);\r
+ //changes the amplitude\r
+ __declspec(dllexport) void setAmplitude(unsigned int amplitude);\r
+ __declspec(dllexport) void setAmplitude(unsigned int frame, unsigned int amplitude);\r
+\r
\r
//returns the number of frames\r
__declspec(dllexport) const unsigned int getNbFrames() const;\r