Пример #1
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()
Пример #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()