New Tacton constructors
authorThomas Pietrzak <thomas.pietrzak@gmail.com>
Wed, 29 Jun 2011 21:09:23 +0000 (21:09 +0000)
committerThomas Pietrzak <thomas.pietrzak@gmail.com>
Wed, 29 Jun 2011 21:09:23 +0000 (21:09 +0000)
git-svn-id: svn+ssh://thomaspietrzak.com/var/svn/rep@39 47cf9a05-e0a8-4ed5-9e9b-101a649bc004

Arduino/wristbandTactons/wristbandTactons.pde
TactonLibrary.suo
TactonPlayer/Tacton.cpp
TactonPlayer/Tacton.hpp
TactonPlayer/TactonPlayer.vcxproj

index e512d442fe382294d6fcfe3e87038be49bb0f7a1..58c35d1305befae760c5c3f137137640e2b63ae2 100644 (file)
@@ -2,7 +2,7 @@
 #include <TactonPlayer.h>
 #include <Tacton.h>
 byte pins[] = {
-  3, 11, 9, 5};
+  3, 11, 5, 9};
 TactonPlayer player(4, pins);
 TactonManager manager(&player);
 
@@ -105,8 +105,8 @@ void loop()
         index = Serial.read();
         manager.play(index);
         command = 0;
-        Serial.print("Play");
-        Serial.println(index, DEC);
+  /*      Serial.print("Play");
+        Serial.println(index, DEC);*/
       }
       break;
     //schedule the play of a registered tacton
@@ -118,9 +118,9 @@ void loop()
             (((unsigned long)Serial.read()) << 16) | \
             (((unsigned long)Serial.read()) << 8) | \
             (((unsigned long)Serial.read()));
-        Serial.print("Plan ");
+/*        Serial.print("Plan ");
         Serial.println(timestamp, DEC);
-/*        Serial.print(" played at ");
+        Serial.print(" played at ");
         Serial.print(timestamp + start, DEC);
         Serial.print(" shift=");
         Serial.println(start, DEC);*/
index 3ff37c824e1e6f1d5a7141f5a45aed07eb681823..bea52c2c5dde0d2158285333f8befcf67209fdc3 100644 (file)
Binary files a/TactonLibrary.suo and b/TactonLibrary.suo differ
index bf72612c12dd6ff6251348142d62e34c030c923e..64745b92191310e9abf8c1af545c7c85d550ab04 100644 (file)
@@ -78,6 +78,28 @@ Tacton::Tacton(unsigned char pattern, unsigned int duration, unsigned int freque
        _amplitudes[0] = amplitude;\r
 }\r
 \r
+Tacton::Tacton(char *pattern, unsigned int duration, unsigned int frequency, unsigned char amplitude)\r
+:_nbframes(1), _patterns(new unsigned char[1]), _durations(new unsigned int[1]), _frequencies(new unsigned int[1]), _amplitudes(new unsigned char[1])\r
+{\r
+       _patterns[0] = 0;\r
+       _durations[0] = duration;\r
+       _frequencies[0] = frequency;\r
+       _amplitudes[0] = amplitude;\r
+\r
+       setPattern(pattern);\r
+}\r
+\r
+Tacton::Tacton(const char *pattern, unsigned int duration, unsigned int frequency, unsigned char amplitude)\r
+:_nbframes(1), _patterns(new unsigned char[1]), _durations(new unsigned int[1]), _frequencies(new unsigned int[1]), _amplitudes(new unsigned char[1])\r
+{\r
+       _patterns[0] = 0;\r
+       _durations[0] = duration;\r
+       _frequencies[0] = frequency;\r
+       _amplitudes[0] = amplitude;\r
+\r
+       setPattern(pattern);\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
@@ -116,6 +138,11 @@ __declspec(dllexport) void Tacton::setPattern(char *pattern)
        setPattern(0, pattern);\r
 }\r
 \r
+__declspec(dllexport) void Tacton::setPattern(const 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
@@ -128,6 +155,18 @@ __declspec(dllexport) void Tacton::setPattern(unsigned int frame, char *pattern)
        }\r
 }\r
 \r
+__declspec(dllexport) void Tacton::setPattern(unsigned int frame, const 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
index 3294764ff905d636447d22dc2034bb92a64648bc..2a0df409f35e8a161ec9f5861068baaea32feb0b 100644 (file)
@@ -20,6 +20,8 @@ class Tacton
                __declspec(dllexport) Tacton(char *desc);\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(char *pattern, unsigned int duration, unsigned int frequency, unsigned char amplitude);\r
+               __declspec(dllexport) Tacton(const char *pattern, unsigned int duration, unsigned int frequency, unsigned char amplitude);\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
@@ -29,7 +31,9 @@ class Tacton
                __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(const char *pattern);\r
                __declspec(dllexport) void setPattern(unsigned int frame, char *pattern);\r
+               __declspec(dllexport) void setPattern(unsigned int frame, const 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
index aa962eb6f11ae903f6d69ef6a72289d380b0d7c6..770df4b6ea53367bafdf8b93804f136a9f76ccf5 100644 (file)
       <SubSystem>Windows</SubSystem>\r
       <GenerateDebugInformation>true</GenerateDebugInformation>\r
     </Link>\r
+    <PostBuildEvent>\r
+      <Command>copy /y $(CodeAnalysisInputAssembly) C:\Windows\system\\r
+copy /y $(MSBuildProjectDirectory)\*.hpp $(VSInstallDir)VC\include\$(ProjectName)\\r
+copy /y $(OutDir)$(ProjectName).lib $(VSInstallDir)VC\lib</Command>\r
+    </PostBuildEvent>\r
   </ItemDefinitionGroup>\r
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
     <ClCompile>\r
       <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
       <OptimizeReferences>true</OptimizeReferences>\r
     </Link>\r
+    <PostBuildEvent>\r
+      <Command>REM copy /y $(CodeAnalysisInputAssembly) C:\Windows\system\\r
+REM copy /y $(MSBuildProjectDirectory)\*.hpp $(VSInstallDir)VC\include\$(ProjectName)\\r
+REM copy /y $(OutDir)$(ProjectName).lib $(VSInstallDir)VC\lib</Command>\r
+    </PostBuildEvent>\r
   </ItemDefinitionGroup>\r
   <ItemGroup>\r
     <ClInclude Include="Serial.hpp" />\r