mirror of
https://github.com/dwhinham/mt32-pi.git
synced 2026-07-08 17:56:50 +00:00
Previously, the LCD code needed to be aware of each synthesizer to know how to draw their respective displays, which wasn't very maintainable. Introduce a UI class where generic drawing utility functions and "system" drawing code can be implemented, and move synth-specific drawing to the synth classes themselves. This simplifies the LCD/OLED drivers to just being interfaces to the hardware. Also introduce a "MIDI monitor" class which tracks the state of all MIDI activity per-synth for level meter drawing purposes. This ensures we never miss a note; previously we were simply polling each synth engine for its note velocities per LCD update, which was prone to missing fast notes and also didn't account for channel volume or expression pedal. Finally, enable support for 16-character wide displays (closes #58).
90 lines
2.1 KiB
Makefile
90 lines
2.1 KiB
Makefile
#
|
|
# Build kernel
|
|
#
|
|
|
|
include Config.mk
|
|
|
|
OBJS := src/config.o \
|
|
src/control/control.o \
|
|
src/control/mister.o \
|
|
src/control/rotaryencoder.o \
|
|
src/control/simplebuttons.o \
|
|
src/control/simpleencoder.o \
|
|
src/kernel.o \
|
|
src/lcd/drivers/hd44780.o \
|
|
src/lcd/drivers/hd44780fourbit.o \
|
|
src/lcd/drivers/hd44780i2c.o \
|
|
src/lcd/drivers/sh1106.o \
|
|
src/lcd/drivers/ssd1306.o \
|
|
src/lcd/ui.o \
|
|
src/main.o \
|
|
src/midimonitor.o \
|
|
src/midiparser.o \
|
|
src/mt32pi.o \
|
|
src/net/applemidi.o \
|
|
src/pisound.o \
|
|
src/power.o \
|
|
src/rommanager.o \
|
|
src/soundfontmanager.o \
|
|
src/synth/mt32synth.o \
|
|
src/synth/soundfontsynth.o \
|
|
src/zoneallocator.o
|
|
|
|
EXTRACLEAN += src/*.d src/*.o \
|
|
src/control/*.d src/control/*.o \
|
|
src/lcd/*.d src/lcd/*.o \
|
|
src/lcd/drivers/*.d src/lcd/drivers/*.o \
|
|
src/net/*.d src/net/*.o \
|
|
src/synth/*.d src/synth/*.o
|
|
|
|
#
|
|
# inih
|
|
#
|
|
OBJS += $(INIHHOME)/ini.o
|
|
INCLUDE += -I $(INIHHOME)
|
|
EXTRACLEAN += $(INIHHOME)/ini.d \
|
|
$(INIHHOME)/ini.o
|
|
|
|
include $(CIRCLEHOME)/Rules.mk
|
|
|
|
CFLAGS += -Werror -Wextra -Wno-unused-parameter
|
|
|
|
CFLAGS += -I "$(NEWLIBDIR)/include" \
|
|
-I $(STDDEF_INCPATH) \
|
|
-I $(CIRCLESTDLIBHOME)/include \
|
|
-I include \
|
|
-I .
|
|
|
|
LIBS := $(CIRCLE_STDLIB_LIBS) \
|
|
$(CIRCLEHOME)/addon/fatfs/libfatfs.a \
|
|
$(CIRCLEHOME)/addon/SDCard/libsdcard.a \
|
|
$(CIRCLEHOME)/addon/wlan/hostap/wpa_supplicant/libwpa_supplicant.a \
|
|
$(CIRCLEHOME)/addon/wlan/libwlan.a \
|
|
$(CIRCLEHOME)/lib/fs/libfs.a \
|
|
$(CIRCLEHOME)/lib/input/libinput.a \
|
|
$(CIRCLEHOME)/lib/libcircle.a \
|
|
$(CIRCLEHOME)/lib/net/libnet.a \
|
|
$(CIRCLEHOME)/lib/sched/libsched.a \
|
|
$(CIRCLEHOME)/lib/usb/libusb.a
|
|
|
|
ifeq ($(HDMI_CONSOLE), 1)
|
|
DEFINE += -D HDMI_CONSOLE
|
|
endif
|
|
|
|
-include $(DEPS)
|
|
|
|
INCLUDE += -I $(MT32EMUBUILDDIR)/include
|
|
EXTRALIBS += $(MT32EMULIB)
|
|
|
|
INCLUDE += -I $(FLUIDSYNTHBUILDDIR)/include \
|
|
-I $(FLUIDSYNTHHOME)/include
|
|
EXTRALIBS += $(FLUIDSYNTHLIB)
|
|
|
|
#
|
|
# Generate version string from git tag
|
|
#
|
|
VERSION=$(shell git describe --tags --dirty --always 2>/dev/null)
|
|
ifneq ($(VERSION),)
|
|
DEFINE += -D MT32_PI_VERSION=\"$(VERSION)\"
|
|
endif
|