Skip to content

Commit

Permalink
Database schema added
Browse files Browse the repository at this point in the history
  • Loading branch information
SeaRocRich committed Feb 10, 2021
1 parent edf73f0 commit a0246ac
Show file tree
Hide file tree
Showing 3 changed files with 59 additions and 4 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,5 @@ lib/external/__pycache__/SparkClass.cpython-39.pyc
lib/external/__pycache__/SparkCommsClass.cpython-39.pyc
lib/external/__pycache__/SparkReaderClass.cpython-39.pyc
.vscode/settings.json
pgsparklite.db
lib/__pycache__/presetdatabase.cpython-39.pyc
20 changes: 16 additions & 4 deletions app.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
from flask_socketio import SocketIO

from lib.sparkampserver import SparkAmpServer
from lib.presetdatabase import database, PedalParameter, PedalPreset, ChainPreset

#####################
# Application Setup
Expand All @@ -23,6 +24,17 @@
##################


@app.before_request
def _db_connect():
database.connect()


@app.teardown_request
def _db_close(exc):
if not database.is_closed():
database.close()


@app.route('/changeeffect', methods=['POST'])
def change_effect():

Expand Down Expand Up @@ -109,16 +121,16 @@ def static_file(path):
# SocketIO EventListeners
###########################


@socketio.event
def change_effect_parameter(data):
effect = str(data['effect'])
parameter = int(data['parameter'])
value = float(data['value'])

amp.change_effect_parameter(amp.get_amp_effect_name(effect),
parameter, value)
amp.config.update_config(effect, 'change_parameter', value,
parameter)
amp.change_effect_parameter(amp.get_amp_effect_name(effect), parameter,
value)
amp.config.update_config(effect, 'change_parameter', value, parameter)


@socketio.event
Expand Down
41 changes: 41 additions & 0 deletions lib/presetdatabase.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
from peewee import Model, IntegerField, CharField, BooleanField, FloatField, ForeignKeyField, SqliteDatabase

database = SqliteDatabase('pgsparklite.db')


class BaseModel(Model):
id = IntegerField(primary_key=True)

class Meta:
database = database


class PedalParameter(BaseModel):
effect_name = CharField()
on_off = BooleanField()
p1_value = FloatField()
p2_value = FloatField()
p3_value = FloatField()
p4_value = FloatField()
p5_value = FloatField()
p6_value = FloatField()


class PedalPreset(BaseModel):
name = CharField()
pedal_parameter_id = ForeignKeyField(PedalParameter)
effect_type = CharField()


class ChainPreset(BaseModel):
name = CharField()
gate_pedal_parameter_id = ForeignKeyField(PedalParameter)
drive_pedal_parameter_id = ForeignKeyField(PedalParameter)
amp_pedal_parameter_id = ForeignKeyField(PedalParameter)
mod_pedal_parameter_id = ForeignKeyField(PedalParameter)
delay_pedal_parameter_id = ForeignKeyField(PedalParameter)
reverb_pedal_parameter_id = ForeignKeyField(PedalParameter)


# Create and initialise the database if necessary
database.create_tables([PedalParameter, PedalPreset, ChainPreset])

0 comments on commit a0246ac

Please sign in to comment.