You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

54 lines
942B

  1. namespace rack_plugin_rcm {
  2. struct PatternData;
  3. class Transport {
  4. public:
  5. Transport(PatternData* data);
  6. int currentPattern();
  7. int currentMeasure();
  8. int currentStepInMeasure();
  9. int currentStepInPattern();
  10. bool isLastStepOfPattern();
  11. void setPattern(int pattern);
  12. void setMeasure(int measure);
  13. void setStepInMeasure(int step);
  14. void setStepInPattern(int step);
  15. void advancePattern(int offset);
  16. void advanceStep();
  17. void lockMeasure();
  18. void unlockMeasure();
  19. bool isLocked();
  20. void toggleRun();
  21. void setRun(bool running);
  22. bool isRunning();
  23. void toggleRecording();
  24. bool isRecording();
  25. bool isPendingRecording();
  26. void reset();
  27. bool dirty = true;
  28. bool consumeDirty();
  29. private:
  30. int pattern = 0;
  31. int stepInPattern = -1;
  32. bool locked = false;
  33. bool running = true;
  34. bool recording = false;
  35. bool pendingRecording = false;
  36. PatternData* patternData;
  37. };
  38. } // namespace rack_plugin_rcm