Updated library versions and refactored utils

This commit is contained in:
Christian Colglazier 2020-09-11 11:42:02 -04:00
parent f2162db95c
commit 6cdbf33d21
8 changed files with 31 additions and 40 deletions

View File

@ -1,6 +1,6 @@
TARGET = main TARGET = main
CPP_SOURCES = src/main.cpp src/menu.cpp src/util.cpp CPP_SOURCES = src/main.cpp src/util.cpp src/menu.cpp
LIBDAISY_DIR = ./lib/libDaisy LIBDAISY_DIR = ./lib/libDaisy
DAISYSP_DIR = ./lib/daisySP DAISYSP_DIR = ./lib/daisySP

@ -1 +1 @@
Subproject commit ddaa1588c793e115f9e0ca915069376caf2e120a Subproject commit c4fe13ce05fb32df9955b9c236ef43d9855c2b94

@ -1 +1 @@
Subproject commit 2cfc8f7f395b9c159b4e64c34fad1100dd0f5834 Subproject commit aaa17b041a4eb0c00a583be6b383af8c02797682

View File

@ -1,19 +1,17 @@
#include "daisysp.h" #include "daisysp.h"
#include "daisy_patch.h" #include "daisy_patch.h"
#include <algorithm>
#include <string> #include <string>
#include "main.h" #include "main.h"
#include "menu.h"
#include "util.h" #include "util.h"
#include "menu.h"
using namespace daisy; using namespace daisy;
using namespace daisysp; using namespace daisysp;
DaisyPatch patch; DaisyPatch patch;
Util util(&patch); Menu menu(&patch);
Menu menu(&patch, &util);
int main(void) { int main(void) {
patch.Init(); patch.Init();
@ -28,7 +26,6 @@ int main(void) {
void ProcessControls() { void ProcessControls() {
patch.UpdateAnalogControls(); patch.UpdateAnalogControls();
patch.DebounceControls(); patch.DebounceControls();
if (menu.InMenu()) { if (menu.InMenu()) {
menu.UpdateMenuPosition(); menu.UpdateMenuPosition();
if (patch.encoder.RisingEdge()) { if (patch.encoder.RisingEdge()) {
@ -47,11 +44,10 @@ void ProcessOutputs() {}
void ProcessOled() { void ProcessOled() {
patch.display.Fill(false); patch.display.Fill(false);
if (menu.InMenu()) { if (menu.InMenu()) {
menu.ProcessMenuOled(); menu.ProcessMenuOled();
} else { } else {
util.WriteString(0, 0, menu.SelectedName()); WriteString(patch, 0, 0, Font_6x8, menu.SelectedName());
} }
patch.display.Update(); patch.display.Update();
} }

View File

@ -1,9 +1,7 @@
#include "menu.h" #include "menu.h"
Menu::Menu(DaisyPatch* m_patch, Menu::Menu(DaisyPatch* m_patch) {
Util* m_util) {
patch = m_patch; patch = m_patch;
util = m_util;
} }
const std::string MENU_ITEMS[] = {"VCO", const std::string MENU_ITEMS[] = {"VCO",
"VCA", "VCA",
@ -51,7 +49,7 @@ void Menu::CreateMenuItem(std::string text, int position, bool highlighted) {
text.insert(text.end(), MAX_CHAR_LENGTH-text.size(), ' '); text.insert(text.end(), MAX_CHAR_LENGTH-text.size(), ' ');
patch->display.SetCursor(MENU_X[position-1], MENU_Y[position-1]); patch->display.SetCursor(MENU_X[position-1], MENU_Y[position-1]);
if (highlighted) { if (highlighted) {
util->DrawSolidRect(0, MENU_Y[2], SSD1309_WIDTH, MENU_Y[2]+17, true); DrawSolidRect(*patch, 0, MENU_Y[2], SSD1309_WIDTH, MENU_Y[2]+17, true);
patch->display.WriteString(cstr, Font_11x18, !highlighted); patch->display.WriteString(cstr, Font_11x18, !highlighted);
} else { } else {
patch->display.WriteString(cstr, Font_7x10, !highlighted); patch->display.WriteString(cstr, Font_7x10, !highlighted);

View File

@ -10,9 +10,8 @@ using namespace daisy;
class Menu { class Menu {
private: private:
DaisyPatch* patch; DaisyPatch* patch;
Util* util;
public: public:
Menu(DaisyPatch*, Util*); Menu(DaisyPatch*);
bool InMenu(); bool InMenu();
void SetInMenu(bool); void SetInMenu(bool);
void FilterMenuSelection(); void FilterMenuSelection();

View File

@ -1,21 +1,18 @@
#include "util.h" #include "util.h"
Util::Util(DaisyPatch* m_patch) { void DrawSolidRect(DaisyPatch patch,
patch = m_patch; uint8_t x1,
}
void Util::DrawSolidRect(uint8_t x1,
uint8_t y1, uint8_t y1,
uint8_t x2, uint8_t x2,
uint8_t y2, uint8_t y2,
bool on) { bool on) {
for (int i = std::min(y1, y2); i <= std::max(y1, y2); i++) { for (int i = std::min(y1, y2); i <= std::max(y1, y2); i++) {
patch->display.DrawLine(x1, i, x2, i, on); patch.display.DrawLine(x1, i, x2, i, on);
} }
} }
void Util::WriteString(int x, int y, std::string text) { void WriteString(DaisyPatch patch, int x, int y, FontDef font, std::string text) {
patch->display.SetCursor(x, y); patch.display.SetCursor(x, y);
char* cstr = &text[0]; char* cstr = &text[0];
patch->display.WriteString(cstr, Font_6x8, true); patch.display.WriteString(cstr, font, true);
} }

View File

@ -1,24 +1,25 @@
#pragma once #pragma once
#ifndef CASCADE_UTIL_H_
#define CASCADE_UTIL_H_
#include "daisy_patch.h" #include "daisy_patch.h"
#include <string> #include <string>
using namespace daisy; using namespace daisy;
class Util { void DrawSolidRect(DaisyPatch,
private: uint8_t,
DaisyPatch* patch; uint8_t,
public: uint8_t,
Util(DaisyPatch*); uint8_t,
bool);
void DrawSolidRect(uint8_t,
uint8_t,
uint8_t,
uint8_t,
bool);
void WriteString(int, void WriteString(DaisyPatch,
int, int,
std::string); int,
}; FontDef,
std::string);
#endif // CASCADE_UTIL_H_