aboutsummaryrefslogtreecommitdiff
path: root/core.py
diff options
context:
space:
mode:
authortassaron2017-06-18 14:46:08 -0400
committertassaron2017-06-18 14:46:08 -0400
commit044fddfa9c5063f61e4a97993efe7cd5b2bae066 (patch)
tree011551caf0c8f21831a697eccef67acda1dfaa5f /core.py
parent2c63b053769ecdc2791af3b35392f0ff0b19ad76 (diff)
basic commandline functionality using 3 args
needs more args so components can be modified without gui
Diffstat (limited to 'core.py')
-rw-r--r--core.py40
1 files changed, 26 insertions, 14 deletions
diff --git a/core.py b/core.py
index e4a7a6c..5e4071a 100644
--- a/core.py
+++ b/core.py
@@ -37,6 +37,7 @@ class Core():
'*.wav',
'*.ogg',
'*.fla',
+ '*.flac',
'*.aac',
])
self.imageFormats = Core.appendUppercase([
@@ -76,9 +77,10 @@ class Core():
for i, component in enumerate(self.selectedComponents):
component.compPos = i
- def insertComponent(self, compPos, moduleIndex):
+ def insertComponent(self, compPos, moduleIndex, loader):
+ '''Creates a new component'''
if compPos < 0:
- compPos = len(self.selectedComponents) -1
+ compPos = len(self.selectedComponents)
if len(self.selectedComponents) > 50:
return None
@@ -87,8 +89,14 @@ class Core():
self.selectedComponents.insert(
compPos,
component)
-
self.componentListChanged()
+
+ # init component's widget for loading/saving presets
+ self.selectedComponents[compPos].widget(loader)
+ self.updateComponent(compPos)
+
+ if hasattr(loader, 'insertComponent'):
+ loader.insertComponent(compPos)
return compPos
def moveComponent(self, startI, endI):
@@ -115,11 +123,8 @@ class Core():
index = compNames.index(compName)
return self.moduleIndexes[index]
- def clearPreset(self, compIndex, loader=None):
- '''Clears a preset from a component'''
+ def clearPreset(self, compIndex):
self.selectedComponents[compIndex].currentPreset = None
- if loader:
- loader.updateComponentTitle(compIndex)
def openPreset(self, filepath, compIndex, presetName):
'''Applies a preset to a specific component'''
@@ -148,9 +153,10 @@ class Core():
return saveValueStore
def openProject(self, loader, filepath):
- '''loader is the object calling this method (mainwindow/command)
- which implements an insertComponent method'''
+ '''loader is the object calling this method which must have
+ its own showMessage(**kwargs) method for displaying errors'''
errcode, data = self.parseAvFile(filepath)
+ print(data)
if errcode == 0:
try:
for i, tup in enumerate(data['Components']):
@@ -169,10 +175,13 @@ class Core():
# saved preset was renamed or deleted
clearThis = True
- # insert component into the loader
- i = loader.insertComponent(
- self.moduleIndexFor(name), -1)
+ # create the actual component object & get its index
+ i = self.insertComponent(
+ -1,
+ self.moduleIndexFor(name),
+ loader)
if i == None:
+ loader.showMessage(msg="Too many components!")
break
try:
@@ -190,7 +199,9 @@ class Core():
(self.selectedComponents[i], e))
if clearThis:
- self.clearPreset(i, loader)
+ self.clearPreset(i)
+ if hasattr(loader, 'updateComponentTitle'):
+ loader.updateComponentTitle(i)
except:
errcode = 1
data = sys.exc_info()
@@ -202,7 +213,8 @@ class Core():
# probably just an old version, still loadable
print('file missing value: %s' % value)
return
- loader.createNewProject()
+ if hasattr(loader, 'createNewProject'):
+ loader.createNewProject()
msg = '%s: %s' % (typ.__name__, value)
loader.showMessage(
msg="Project file '%s' is corrupted." % filepath,