class RecordingPlayer: def __init__(self, json_file='../data/sampleRecording2.json', osc_host='127.0.0.1', osc_port=8080, manager=None, autoStart=False): # config self.json_file = json_file self.osc_host = osc_host self.osc_port = osc_port self.manager = manager self.reader = None self.writer = None if autoStart: self.start() def setup(self): # clean existing mess before we start creating a mess self.destroy() # let's make a mess if self.manager == None: self.manager = Manager() self.writer = OscWriter(host=self.osc_host, port=self.osc_port, manager=self.manager) self.reader = JsonReader(self.json_file, manager=self.manager) def destroy(self): if self.reader: self.reader.stop() self.reader = None if self.writer: self.writer.stop() self.writer = None if self.manager: self.manager = None def update(self): if self.reader: self.reader.update() def start(self): self.setup() def stop(self): self.destroy() def status(self): if self.reader != None: return 'playing' return 'stopped'
class RecordingPlayer: def __init__(self, json_file='data/sampleRecording2.json', osc_host='127.0.0.1', osc_port=8080, manager=None, autoStart=False): # config self.json_file = json_file self.osc_host = osc_host self.osc_port = osc_port self.manager = manager self.reader = None self.writer = None if autoStart: self.start() def setup(self): # clean existing mess before we start creating a mess self.destroy() # let's make a mess if self.manager == None: self.manager = Manager() self.writer = OscWriter(host=self.osc_host, port=self.osc_port, manager=self.manager) self.reader = JsonReader(self.json_file, manager=self.manager) def destroy(self): if self.reader: self.reader.stop() self.reader = None if self.writer: self.writer.stop() self.writer = None if self.manager: self.manager = None def update(self): if self.reader: self.reader.update() def start(self): self.setup() def stop(self): self.destroy() def status(self): if self.reader != None: return 'playing' return 'stopped'
class MoCapJson: _instances_by_owner = {} def for_owner(owner): try: # Find previously creted instance return MoCapJson._instances_by_owner[owner] except KeyError: # Create new instance inst = MoCapJson(owner) # Store it so it can be found next time MoCapJson._instances_by_owner[owner] = inst return inst def __init__(self, owner): self.owner = owner self.config = bpy.data.objects[self.owner.name].moCapJsonConfig self.manager = Manager.instance_by_ref(self.owner) # try to get a global manager instance self.json_reader = JsonReader(path=self.config.file, loop=self.config.loop, sync=self.config.sync, manager=self.manager, autoStart=self.config.enabled) def update(self): if self.config.enabled: self.json_reader.update()