47 lines
No EOL
830 B
Python
47 lines
No EOL
830 B
Python
class SoundNode:
|
|
|
|
def __init__(self, order, name):
|
|
|
|
self.order = order
|
|
self.name = name
|
|
self.properties = dict() # {k: v}
|
|
|
|
def __repr__(self):
|
|
return f'{self.order}:{self.name}'
|
|
|
|
def g(self, k):
|
|
return self.properties.get(k)
|
|
|
|
def s(self, k, v):
|
|
self.properties[k] = v
|
|
|
|
class Sonnum:
|
|
|
|
def __init__(self):
|
|
|
|
self.nodes = dict() # {order: name}
|
|
self.properties = dict() # {k: v}
|
|
|
|
def add_node(self, name):
|
|
|
|
order = len(self.nodes)
|
|
self.nodes[name] = SoundNode(order, name)
|
|
|
|
return self.nodes[name]
|
|
|
|
def node_by_name(self, name):
|
|
|
|
for order, node in self.nodes.items():
|
|
|
|
if node.name == name:
|
|
return node
|
|
|
|
def node_by_order(self, order):
|
|
|
|
return self.nodes.get(order)
|
|
|
|
def g(self, k):
|
|
return self.properties.get(k)
|
|
|
|
def s(self, k, v):
|
|
self.properties[k] = v |