Rollback to v2.0.0beta3 - reverting changes from v2.0.0
This commit is contained in:
@ -17,7 +17,7 @@
|
||||
* TODO: Store the calibration value in EEPROM.
|
||||
*/
|
||||
|
||||
#include "libGravity.h"
|
||||
#include "gravity.h"
|
||||
|
||||
#define TEXT_FONT u8g2_font_profont11_tf
|
||||
#define INDICATOR_FONT u8g2_font_open_iconic_arrow_1x_t
|
||||
@ -43,7 +43,7 @@ void NextCalibrationPoint() {
|
||||
selected_param = (selected_param + 1) % 6;
|
||||
}
|
||||
|
||||
void CalibrateCV(int val) {
|
||||
void CalibrateCV(Direction dir, int val) {
|
||||
AnalogInput* cv = (selected_param > 2) ? &gravity.cv2 : &gravity.cv1;
|
||||
switch (selected_param % 3) {
|
||||
case 0:
|
||||
|
||||
@ -14,7 +14,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "libGravity.h"
|
||||
#include "gravity.h"
|
||||
|
||||
#define TEXT_FONT u8g2_font_profont11_tf
|
||||
|
||||
@ -39,7 +39,7 @@ void NextCalibrationPoint() {
|
||||
selected_param = (selected_param + 1) % 2;
|
||||
}
|
||||
|
||||
void CalibrateCV(int val) {
|
||||
void CalibrateCV(Direction dir, int val) {
|
||||
// AnalogInput* cv = (selected_param > 2) ? &gravity.cv2 : &gravity.cv1;
|
||||
AnalogInput* cv = &gravity.cv1;
|
||||
switch (selected_param % 2) {
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
#include "libGravity.h"
|
||||
#include "gravity.h"
|
||||
|
||||
byte idx = 0;
|
||||
bool reversed = false;
|
||||
@ -33,28 +33,28 @@ void IntClock(uint32_t tick) {
|
||||
if (tick % 12 == 0 && ! freeze) {
|
||||
gravity.outputs[idx].Low();
|
||||
if (reversed) {
|
||||
idx = (idx == 0) ? Gravity::OUTPUT_COUNT - 1 : idx - 1;
|
||||
idx = (idx == 0) ? OUTPUT_COUNT - 1 : idx - 1;
|
||||
} else {
|
||||
idx = (idx + 1) % Gravity::OUTPUT_COUNT;
|
||||
idx = (idx + 1) % OUTPUT_COUNT;
|
||||
}
|
||||
gravity.outputs[idx].High();
|
||||
}
|
||||
}
|
||||
|
||||
void HandlePlayPressed() {
|
||||
gravity.clock.Stop();
|
||||
gravity.clock.Pause();
|
||||
if (gravity.clock.IsPaused()) {
|
||||
for (int i = 0; i < Gravity::OUTPUT_COUNT; i++) {
|
||||
for (int i = 0; i < OUTPUT_COUNT; i++) {
|
||||
gravity.outputs[i].Low();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void HandleRotate(int val) {
|
||||
void HandleRotate(Direction dir, int val) {
|
||||
if (selected_param == 0) {
|
||||
gravity.clock.SetTempo(gravity.clock.Tempo() + val);
|
||||
} else if (selected_param == 1) {
|
||||
reversed = (val < 0);
|
||||
reversed = (dir == DIRECTION_DECREMENT);
|
||||
}
|
||||
}
|
||||
|
||||
@ -80,7 +80,7 @@ void UpdateDisplay() {
|
||||
gravity.display.print("Direction: ");
|
||||
gravity.display.print((reversed) ? "Backward" : "Forward");
|
||||
|
||||
gravity.display.drawStr(0, selected_param * 10, "x");
|
||||
gravity.display.drawChar(0, selected_param * 10, 0x10, 1, 0, 1);
|
||||
|
||||
gravity.display.display();
|
||||
}
|
||||
@ -1,118 +0,0 @@
|
||||
/**
|
||||
* @file skeleton.ino
|
||||
* @author YOUR_NAME (<url>)
|
||||
* @brief Skeleton app for Sitka Instruments Gravity.
|
||||
* @version vX.Y.Z - MONTH YEAR YOUR_NAME
|
||||
* @date YYYY-MM-DD
|
||||
*
|
||||
* @copyright MIT - (c) 2025 - Adam Wonak - adam.wonak@gmail.com
|
||||
*
|
||||
* Skeleton app for basic structure of a new firmware for Sitka Instruments
|
||||
* Gravity using the libGravity library.
|
||||
*
|
||||
* ENCODER:
|
||||
* Press: change between selecting a parameter and editing the parameter.
|
||||
* Hold & Rotate: change current selected output channel.
|
||||
*
|
||||
* BTN1:
|
||||
* Play/pause - start or stop the internal clock.
|
||||
*
|
||||
* BTN2:
|
||||
* Shift - hold and rotate encoder to change current selected output channel.
|
||||
*
|
||||
* EXT:
|
||||
* External clock input. When Gravity is set to INTERNAL or MIDI clock
|
||||
* source, this input is used to reset clocks.
|
||||
*
|
||||
* CV1:
|
||||
* External analog input used to provide modulation to any channel parameter.
|
||||
*
|
||||
* CV2:
|
||||
* External analog input used to provide modulation to any channel parameter.
|
||||
*
|
||||
*/
|
||||
|
||||
#include <libGravity.h>
|
||||
|
||||
|
||||
|
||||
// Global state for settings and app behavior.
|
||||
struct AppState {
|
||||
int tempo = Clock::DEFAULT_TEMPO;
|
||||
Clock::Source selected_source = Clock::SOURCE_INTERNAL;
|
||||
// Add app specific state variables here.
|
||||
};
|
||||
|
||||
AppState app;
|
||||
|
||||
//
|
||||
// Arduino setup and loop.
|
||||
//
|
||||
|
||||
void setup() {
|
||||
// Start Gravity.
|
||||
gravity.Init();
|
||||
|
||||
// Clock handlers.
|
||||
gravity.clock.AttachIntHandler(HandleIntClockTick);
|
||||
gravity.clock.AttachExtHandler(HandleExtClockTick);
|
||||
|
||||
// Encoder rotate and press handlers.
|
||||
gravity.encoder.AttachPressHandler(HandleEncoderPressed);
|
||||
gravity.encoder.AttachRotateHandler(HandleRotate);
|
||||
gravity.encoder.AttachPressRotateHandler(HandlePressedRotate);
|
||||
|
||||
// Button press handlers.
|
||||
gravity.play_button.AttachPressHandler(HandlePlayPressed);
|
||||
}
|
||||
|
||||
void loop() {
|
||||
// Process change in state of inputs and outputs.
|
||||
gravity.Process();
|
||||
|
||||
// Non-ISR loop behavior.
|
||||
}
|
||||
|
||||
//
|
||||
// Firmware handlers for clocks.
|
||||
//
|
||||
|
||||
void HandleIntClockTick(uint32_t tick) {
|
||||
bool refresh = false;
|
||||
for (int i = 0; i < Gravity::OUTPUT_COUNT; i++) {
|
||||
// Process each output tick handlers.
|
||||
}
|
||||
}
|
||||
|
||||
void HandleExtClockTick() {
|
||||
switch (app.selected_source) {
|
||||
case Clock::SOURCE_INTERNAL:
|
||||
case Clock::SOURCE_EXTERNAL_MIDI:
|
||||
// Use EXT as Reset when not used for clock source.
|
||||
gravity.clock.Reset();
|
||||
break;
|
||||
default:
|
||||
// Register EXT cv clock tick.
|
||||
gravity.clock.Tick();
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// UI handlers for encoder and buttons.
|
||||
//
|
||||
|
||||
void HandlePlayPressed() {
|
||||
}
|
||||
|
||||
void HandleEncoderPressed() {
|
||||
}
|
||||
|
||||
void HandleRotate(int val) {
|
||||
}
|
||||
|
||||
void HandlePressedRotate(int val) {
|
||||
}
|
||||
|
||||
//
|
||||
// Application logic goes here.
|
||||
//
|
||||
Reference in New Issue
Block a user