From: Thomas Pietrzak Date: Wed, 29 Jun 2011 21:09:23 +0000 (+0000) Subject: New Tacton constructors X-Git-Url: https://git.thomaspietrzak.com/?a=commitdiff_plain;h=2652fe6eb704fdea3fd6dd4bfa93f225e02625a7;p=tactonlibrary.git New Tacton constructors git-svn-id: svn+ssh://thomaspietrzak.com/var/svn/rep@39 47cf9a05-e0a8-4ed5-9e9b-101a649bc004 --- diff --git a/Arduino/wristbandTactons/wristbandTactons.pde b/Arduino/wristbandTactons/wristbandTactons.pde index e512d44..58c35d1 100644 --- a/Arduino/wristbandTactons/wristbandTactons.pde +++ b/Arduino/wristbandTactons/wristbandTactons.pde @@ -2,7 +2,7 @@ #include #include 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);*/ diff --git a/TactonLibrary.suo b/TactonLibrary.suo index 3ff37c8..bea52c2 100644 Binary files a/TactonLibrary.suo and b/TactonLibrary.suo differ diff --git a/TactonPlayer/Tacton.cpp b/TactonPlayer/Tacton.cpp index bf72612..64745b9 100644 --- a/TactonPlayer/Tacton.cpp +++ b/TactonPlayer/Tacton.cpp @@ -78,6 +78,28 @@ Tacton::Tacton(unsigned char pattern, unsigned int duration, unsigned int freque _amplitudes[0] = amplitude; } +Tacton::Tacton(char *pattern, unsigned int duration, unsigned int frequency, unsigned char amplitude) +:_nbframes(1), _patterns(new unsigned char[1]), _durations(new unsigned int[1]), _frequencies(new unsigned int[1]), _amplitudes(new unsigned char[1]) +{ + _patterns[0] = 0; + _durations[0] = duration; + _frequencies[0] = frequency; + _amplitudes[0] = amplitude; + + setPattern(pattern); +} + +Tacton::Tacton(const char *pattern, unsigned int duration, unsigned int frequency, unsigned char amplitude) +:_nbframes(1), _patterns(new unsigned char[1]), _durations(new unsigned int[1]), _frequencies(new unsigned int[1]), _amplitudes(new unsigned char[1]) +{ + _patterns[0] = 0; + _durations[0] = duration; + _frequencies[0] = frequency; + _amplitudes[0] = amplitude; + + setPattern(pattern); +} + Tacton::Tacton(const Tacton &t) :_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]) { @@ -116,6 +138,11 @@ __declspec(dllexport) void Tacton::setPattern(char *pattern) setPattern(0, pattern); } +__declspec(dllexport) void Tacton::setPattern(const char *pattern) +{ + setPattern(0, pattern); +} + __declspec(dllexport) void Tacton::setPattern(unsigned int frame, char *pattern) { if (frame < _nbframes) @@ -128,6 +155,18 @@ __declspec(dllexport) void Tacton::setPattern(unsigned int frame, char *pattern) } } +__declspec(dllexport) void Tacton::setPattern(unsigned int frame, const char *pattern) +{ + if (frame < _nbframes) + { + unsigned char t1 = pattern[0] == '1'; + unsigned char t2 = pattern[1] == '1'; + unsigned char t3 = pattern[2] == '1'; + unsigned char t4 = pattern[3] == '1'; + _patterns[frame] = (t1 << 3) | (t2 << 2) | (t3 << 1) | t4; + } +} + __declspec(dllexport) void Tacton::setDuration(unsigned int duration) { setDuration(0, duration); diff --git a/TactonPlayer/Tacton.hpp b/TactonPlayer/Tacton.hpp index 3294764..2a0df40 100644 --- a/TactonPlayer/Tacton.hpp +++ b/TactonPlayer/Tacton.hpp @@ -20,6 +20,8 @@ class Tacton __declspec(dllexport) Tacton(char *desc); __declspec(dllexport) Tacton(unsigned int nbframes, unsigned char *patterns, unsigned int *durations, unsigned int *frequencies, unsigned char *amplitudes); //create a simple vibration + __declspec(dllexport) Tacton(char *pattern, unsigned int duration, unsigned int frequency, unsigned char amplitude); + __declspec(dllexport) Tacton(const char *pattern, unsigned int duration, unsigned int frequency, unsigned char amplitude); __declspec(dllexport) Tacton(unsigned char pattern, unsigned int duration, unsigned int frequency, unsigned char amplitude); __declspec(dllexport) Tacton(const Tacton &t); __declspec(dllexport) ~Tacton(); @@ -29,7 +31,9 @@ class Tacton __declspec(dllexport) void setPattern(unsigned int frame, char pattern); //changes the pattern using string format __declspec(dllexport) void setPattern(char *pattern); + __declspec(dllexport) void setPattern(const char *pattern); __declspec(dllexport) void setPattern(unsigned int frame, char *pattern); + __declspec(dllexport) void setPattern(unsigned int frame, const char *pattern); //changes the duration __declspec(dllexport) void setDuration(unsigned int duration); __declspec(dllexport) void setDuration(unsigned int frame, unsigned int duration); diff --git a/TactonPlayer/TactonPlayer.vcxproj b/TactonPlayer/TactonPlayer.vcxproj index aa962eb..770df4b 100644 --- a/TactonPlayer/TactonPlayer.vcxproj +++ b/TactonPlayer/TactonPlayer.vcxproj @@ -56,6 +56,11 @@ Windows true + + copy /y $(CodeAnalysisInputAssembly) C:\Windows\system\ +copy /y $(MSBuildProjectDirectory)\*.hpp $(VSInstallDir)VC\include\$(ProjectName)\ +copy /y $(OutDir)$(ProjectName).lib $(VSInstallDir)VC\lib + @@ -74,6 +79,11 @@ true true + + REM copy /y $(CodeAnalysisInputAssembly) C:\Windows\system\ +REM copy /y $(MSBuildProjectDirectory)\*.hpp $(VSInstallDir)VC\include\$(ProjectName)\ +REM copy /y $(OutDir)$(ProjectName).lib $(VSInstallDir)VC\lib +