def __init__(self, osc_reader=None, parent=None):
        self.reader = osc_reader
        self.parent = parent

        if self.reader == None:
            self.reader = OscReader()

        self.setup()
Example #2
0
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()
Example #3
0
    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)
Example #4
0
    def __init__(self, osc_reader=None, parent=None):
        self.reader = osc_reader
        self.parent = parent

        if self.reader == None:
            self.reader = OscReader()

        self.setup()
Example #5
0
    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')
Example #7
0
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()
Example #8
0
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')