def __init__(self, osc_reader=None, parent=None): self.reader = osc_reader self.parent = parent if self.reader == None: self.reader = OscReader() self.setup()
class MoCapOsc: # # Class # _owner_instances = set() def for_owner(owner): # Find previously created instance for instance in MoCapOsc._owner_instances: if instance.owner == owner: return instance # Create new instance instance = MoCapOsc(owner) MoCapOsc._owner_instances.add(instance) return instance def remove_owner_instance(instance): try: MoCapOsc._owner_instances.remove(instance) except KeyError: print("MoCapOsc.remove_owner_instance asked to remove unknown instance of MoCapOsc") def remove_owner_instances(): MoCapOsc._owner_instances.clear() # # Instance # def __init__(self, owner): self.owner = owner self.config = bpy.data.objects[self.owner.name].moCapOscConfig self.manager = Manager.instance_by_ref(self.owner) # try to get a global manager instance try: self.reader = OscReader(host=self.config.host, port=self.config.port, manager=self.manager, autoStart=self.config.enabled) except NameError as err: self.reader = None print("Could not initialize OscReader:") print(err) # destructor; gets called when the life-cycle of this instance ends def __del__(self): # this makes sure the OSC socket connection gets freed up self.destroy() def destroy(self): if self.reader: self.reader.stop() self.reader = None def update(self): if self.reader and self.config.enabled: self.reader.update()
def __init__(self, owner): self.owner = owner self.config = bpy.data.objects[self.owner.name].moCapOscConfig self.manager = Manager.instance_by_ref( self.owner) # try to get a global manager instance try: self.reader = OscReader(host=self.config.host, port=self.config.port, manager=self.manager, autoStart=self.config.enabled) except NameError as err: self.reader = None print("Could not initialize OscReader:") print(err)
def __init__(self, owner): self.owner = owner self.config = bpy.data.objects[self.owner.name].moCapOscConfig self.manager = Manager.instance_by_ref(self.owner) # try to get a global manager instance try: self.reader = OscReader(host=self.config.host, port=self.config.port, manager=self.manager, autoStart=self.config.enabled) except NameError as err: self.reader = None print("Could not initialize OscReader:") print(err)
class OscReaderView: def __init__(self, osc_reader=None, parent=None): self.reader = osc_reader self.parent = parent if self.reader == None: self.reader = OscReader() self.setup() def setup(self): # create gui-elements self.frame = tk.LabelFrame(self.parent, text='Incoming OSC', padx=10, pady=10) self.frame.grid() self.host_label = tk.Label(self.frame, text="OSC Host") self.host_entry = tk.Entry(self.frame, width=10) self.port_label = tk.Label(self.frame, text="Port") self.port_entry = tk.Entry(self.frame, width=5) self.connect_button = tk.Button(self.frame, text='(re-)connect', command=self.onConnectButton) self.disconnect_button = tk.Button(self.frame, text='disconnect', command=self.onDisconnectButton) self.status_label = tk.Label(self.frame, text='') # position elements self.host_label.grid(column=0, row=0) self.host_entry.grid(column=1, row=0) self.port_label.grid(column=2, row=0) self.port_entry.grid(column=3, row=0) self.connect_button.grid(column=4, row=0) self.disconnect_button.grid(column=5, row=0) self.status_label.grid(column=0, row=1, columnspan=6) # initialize if self.reader: self.host_entry.insert(0, self.reader.host) self.port_entry.insert(0, self.reader.port) self.reader.connectEvent += self.onConnect self.reader.disconnectEvent += self.onDisconnect self.updateStatus(self.reader) def destroy(self): self.frame.grid_forget() def onConnectButton(self): self.reader.stop() self.reader.configure(host=self.host_entry.get(), port=self.port_entry.get()) self.reader.start() def onDisconnectButton(self): self.reader.stop() def onConnect(self, reader): self.updateStatus(reader) def onDisconnect(self, reader): self.updateStatus(reader) def updateStatus(self, reader): if reader.connected == True: self.status_label.config(text='Connected to ' + str(reader.host) + '@' + str(reader.port)) else: self.status_label.config(text='Disconnected')
class MoCapOsc: # # Class # _owner_instances = set() def for_owner(owner): # Find previously created instance for instance in MoCapOsc._owner_instances: if instance.owner == owner: return instance # Create new instance instance = MoCapOsc(owner) MoCapOsc._owner_instances.add(instance) return instance def remove_owner_instance(instance): try: MoCapOsc._owner_instances.remove(instance) except KeyError: print( "MoCapOsc.remove_owner_instance asked to remove unknown instance of MoCapOsc" ) def remove_owner_instances(): MoCapOsc._owner_instances.clear() # # Instance # def __init__(self, owner): self.owner = owner self.config = bpy.data.objects[self.owner.name].moCapOscConfig self.manager = Manager.instance_by_ref( self.owner) # try to get a global manager instance try: self.reader = OscReader(host=self.config.host, port=self.config.port, manager=self.manager, autoStart=self.config.enabled) except NameError as err: self.reader = None print("Could not initialize OscReader:") print(err) # destructor; gets called when the life-cycle of this instance ends def __del__(self): # this makes sure the OSC socket connection gets freed up self.destroy() def destroy(self): if self.reader: self.reader.stop() self.reader = None def update(self): if self.reader and self.config.enabled: self.reader.update()
class OscReaderView: def __init__(self, osc_reader=None, parent=None): self.reader = osc_reader self.parent = parent if self.reader == None: self.reader = OscReader() self.setup() def setup(self): # create gui-elements self.frame = tk.LabelFrame(self.parent, text='Incoming OSC', padx=10, pady=10) self.frame.grid() self.host_label = tk.Label(self.frame, text="OSC Host") self.host_entry = tk.Entry(self.frame, width=10) self.port_label = tk.Label(self.frame, text="Port") self.port_entry = tk.Entry(self.frame, width=5) self.connect_button = tk.Button(self.frame, text='(re-)connect', command=self.onConnectButton) self.disconnect_button = tk.Button(self.frame, text='disconnect', command=self.onDisconnectButton) self.status_label = tk.Label(self.frame, text='') # position elements self.host_label.grid(column=0, row=0) self.host_entry.grid(column=1, row=0) self.port_label.grid(column=2, row=0) self.port_entry.grid(column=3, row=0) self.connect_button.grid(column=4, row=0) self.disconnect_button.grid(column=5, row=0) self.status_label.grid(column=0, row=1, columnspan=6) # initialize if self.reader: self.host_entry.insert(0, self.reader.host) self.port_entry.insert(0, self.reader.port) self.reader.connectEvent += self.onConnect self.reader.disconnectEvent += self.onDisconnect self.updateStatus(self.reader) def destroy(self): self.frame.grid_forget() def onConnectButton(self): self.reader.stop() self.reader.configure(host=self.host_entry.get(), port=self.port_entry.get()) self.reader.start() def onDisconnectButton(self): self.reader.stop() def onConnect(self, reader): self.updateStatus(reader) def onDisconnect(self, reader): self.updateStatus(reader) def updateStatus(self, reader): if reader.connected == True: self.status_label.config(text='Connected to '+str(reader.host)+'@'+str(reader.port)) else: self.status_label.config(text='Disconnected')