Merge branch 'dev' into feature_plugins

This commit is contained in:
Tristan Rowley
2020-02-29 13:18:54 +00:00
15 changed files with 303 additions and 61 deletions

View File

@@ -1,3 +1,4 @@
import subprocess
import json
import xml.etree.ElementTree as ET
import os
@@ -87,16 +88,20 @@ class Data(object):
self.shader_bank_data = [self.create_empty_shader_bank() for i in range(3)]
if os.path.isfile(self.PATH_TO_DATA_OBJECTS + self.SHADER_BANK_DATA_JSON):
self.shader_bank_data = self._read_json(self.SHADER_BANK_DATA_JSON)
self.settings = self._read_json(self.DEFAULT_SETTINGS_JSON)
self.settings = self.default_settings = self._read_json(self.DEFAULT_SETTINGS_JSON)
if os.path.isfile(self.PATH_TO_DATA_OBJECTS + self.SETTINGS_JSON):
self.settings = self._read_json(self.SETTINGS_JSON)
self.settings['user_input'].setdefault('REMOTE_SERVER',
self.default_settings['user_input']['REMOTE_SERVER'])['value'] = 'disabled' # remote server off at boot
self.key_mappings = self._read_json(self.KEYPAD_MAPPING_JSON)
self.osc_mappings = self._read_json(self.OSC_MAPPING_JSON)
self.midi_mappings = self._read_json(self.MIDI_MAPPING_JSON)
self.analog_mappings = self._read_json(self.ANALOG_MAPPING_JSON)
# TODO: move this to a triggerable command/menu item that will spit out files in a place viewable in browser by the 'remote' system
# TODO eventually: have config configurable via remote browser
from utils import docs
docs.generate_mappings_doc("MIDI mappings", self.midi_mappings)
docs.generate_mappings_doc("OSC mappings", self.osc_mappings, column_one_header="OSC address")
@@ -120,6 +125,19 @@ class Data(object):
self.midi_mappings = self._read_json(self.MIDI_MAPPING_JSON)
return self.midi_mappings
def get_ip_address(self):
ip_list = subprocess.check_output(['hostname', '-I']).decode('utf-8').split()
if len(ip_list) > 0:
return ip_list[0]
else:
return 'none'
def get_ip_for_osc_client(self):
if self.settings['user_input']['REMOTE_SERVER']['value'] == 'enabled':
return '127.0.0.1'
else:
return self.get_ip_address()
@staticmethod
def create_empty_bank():
empty_slot = dict(name='', location='', length=-1, start=-1, end=-1, rate=1)
@@ -473,3 +491,5 @@ class Data(object):
def try_remove_file(path):
if os.path.exists(path):
os.remove(path)