Rollback to v2.0.0beta3 - reverting changes from v2.0.0

This commit is contained in:
2026-03-07 20:09:57 -08:00
parent acd028846c
commit fbf8bd94c6
27 changed files with 3081 additions and 1583 deletions

View File

@ -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:

View File

@ -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) {

View File

@ -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();
}

View File

@ -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.
//