// onPose() is called whenever the Myo detects that the person wearing it has changed their pose, for example, // making a fist, or not making a fist anymore. void onPose(myo::Myo* myo, uint64_t timestamp, myo::Pose pose) { currentPose = pose; // Vibrate the Myo whenever we've detected that the user has made a fist. if (pose == myo::Pose::waveIn) { myo->vibrate(myo::Myo::vibrationMedium); std::cout << "RGB Colour (" << (float)shape.getFillColor().r << " , " << (float)shape.getFillColor().g << " , " << (float)shape.getFillColor().b << ")" << std::endl; if(color_input == true) { color_input = false; } else { color_input = true; } } else if(pose == myo::Pose::waveOut) { //myo->vibrate(myo::Myo::vibrationMedium); // this proved to be a bit of a distraction INPUT ip; ip.type = INPUT_MOUSE; ip.mi.dx = 0; ip.mi.dy = 0; ip.mi.time = 0.2; ip.mi.dwFlags = MOUSEEVENTF_RIGHTDOWN; SendInput(1, &ip, sizeof(INPUT)); ip.mi.dwFlags = MOUSEEVENTF_RIGHTUP; // KEYEVENTF_KEYUP for key release SendInput(1, &ip, sizeof(INPUT)); } else if((pose == myo::Pose::fist)||(pose == myo::Pose::thumbToPinky)) { //myo->vibrate(myo::Myo::vibrationMedium); INPUT ip; ip.type = INPUT_MOUSE; ip.mi.dx = 0; ip.mi.dy = 0; ip.mi.time = 0.2; ip.mi.dwFlags = MOUSEEVENTF_LEFTDOWN; SendInput(1, &ip, sizeof(INPUT)); ip.mi.dwFlags = MOUSEEVENTF_LEFTUP; // KEYEVENTF_KEYUP for key release SendInput(1, &ip, sizeof(INPUT)); } }