Exemplo n.º 1
0
 def start(self):
     if self._vlc is None:
         self._vlc = VLCProcess(gui=self._use_gui)
         self.__update_playlist()
         self._vlc.repeat(self._repeat)
         self._vlc.loop(self._loop)
     self._vlc.play()
Exemplo n.º 2
0
class SensorPlayer(object):
    def __init__(self, gui=True):

        self._playlist = Playlist()
        self._playlist.changed.connect(self.__update_playlist)

        self._use_gui = gui
        self._vlc = None
        self._repeat = False
        self._loop = False

        self.adsr = adsr()

        self._trigger_light = True
        self._invert_control = False

        # Volumen predeterminado, 0-256 (256-512 -> 100%-200%)
        self._default_volume = 100
        self.adsr.while_triggered.connect(self.control_cb)

    @property
    def playlist(self):
        return self._playlist

    def __update_playlist(self):
        if self._vlc is None:
            return

        self._vlc.clear()
        for f in self._playlist:
            self._vlc.addfile(f)

    def start(self):
        if self._vlc is None:
            self._vlc = VLCProcess(gui=self._use_gui)
            self.__update_playlist()
            self._vlc.repeat(self._repeat)
            self._vlc.loop(self._loop)
        self._vlc.play()

    def stop(self):
        if self._vlc is not None:
            self._vlc.stop()

    def control_cb(self, x):
        if self._vlc is None:
            return

        if self._invert_control:
            x = 1024 - x

        self._vlc.volume(x/4)

    def release_cb(self):
        if self._vlc is None:
            return
        self._vlc.volume(self._default_volume)

    @property
    def repeat(self):
        """Si True, reproducir indefinidamente el archivo actual"""
        return self._repeat

    @repeat.setter
    def repeat(self, what):
        if what:
            self._repeat = True
        else:
            self._repeat = False

        if self._vlc:
            self._vlc.repeat(what)

    @property
    def loop(self):
        """Si True, reproducir indefinidamente la lista de archivos"""
        return self._loop

    @loop.setter
    def loop(self, what):
        if what:
            self._loop = True
        else:
            self._loop = False

        if self._vlc:
            self._vlc.loop(what)

    @property
    def trigger_on_light(self):
        """Si True, dispararse al iluminar el sensor. Si False al oscurecerlo"""
        return self._triggerlight

    @trigger_on_light.setter
    def trigger_on_light(self, what):
        if what:
            self._trigger_light = True
            self.adsr.slope_sign = 1
        else:
            self._trigger_light = False
            self.adsr.slope_sign = -1

    @property
    def invert_control(self):
        """Si True, mas luz menos volumen. Si False mas luz mas volumen"""
        return self._invert_control

    @invert_control.setter
    def invert_control(self, what):
        if what:
            self._invert_control = True
        else:
            self._invert_control = False

    @property
    def default_volume(self):
        return self._default_volume

    @default_volume.setter
    def default_volume(self, volume):
        self._default_volume = volume
        if self._vlc is None:
            return
        self._vlc.volume(volume)