add copy constructor, and setters
authorThomas Pietrzak <thomas.pietrzak@gmail.com>
Wed, 15 Jun 2011 21:20:07 +0000 (21:20 +0000)
committerThomas Pietrzak <thomas.pietrzak@gmail.com>
Wed, 15 Jun 2011 21:20:07 +0000 (21:20 +0000)
git-svn-id: svn+ssh://thomaspietrzak.com/var/svn/rep@35 47cf9a05-e0a8-4ed5-9e9b-101a649bc004

TactonLibrary.suo
TactonPlayer/Tacton.cpp
TactonPlayer/Tacton.hpp

index 4b9a884fa5176df2e58ec1ddd9e2d04b7a8f7b93..56817b7501a4b43fffefc50d462c1de5a6857055 100644 (file)
Binary files a/TactonLibrary.suo and b/TactonLibrary.suo differ
index 3e38661e3043900e3819a9a9cfc7cc638088624c..bf72612c12dd6ff6251348142d62e34c030c923e 100644 (file)
@@ -78,6 +78,15 @@ Tacton::Tacton(unsigned char pattern, unsigned int duration, unsigned int freque
        _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
@@ -91,6 +100,67 @@ const unsigned int Tacton::getNbFrames() const
        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
index b5162c4afe18ad07c3f977d36e1dcb7124fbf82a..3294764ff905d636447d22dc2034bb92a64648bc 100644 (file)
@@ -21,7 +21,25 @@ class Tacton
                __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