piPlayer/src/piPlayer.py

47 lines
1.4 KiB
Python

from pythonosc import dispatcher
from pythonosc import osc_server
from pythonosc import udp_client
from playerClass import videoPlayer
from time import sleep
import RPi.GPIO as GPIO
import threading
IP = "0.0.0.0"
PORT = 6060
OSC_ADDR = ""
REMOTE_IP = "192.168.21.232"
REMOTE_PORT = 3030
SENSOR_PIN = 4
OSC_SENSOR_ADDR = "/blumen/movement"
def readSensor():
GPIO.setmode(GPIO.BCM)
GPIO.setup(SENSOR_PIN,GPIO.IN)
client = udp_client.SimpleUDPClient(REMOTE_IP, REMOTE_PORT)
pinState = GPIO.input(SENSOR_PIN)
while True:
pinStateNew = GPIO.input(SENSOR_PIN)
if pinStateNew != pinState :
client.send_message(OSC_SENSOR_ADDR,pinStateNew)
pinState = pinStateNew
sleep(0.2)
if __name__ == "__main__":
thread = threading.Thread(target=readSensor)
thread.daemon = True
thread.start()
player = videoPlayer()
dispatcher = dispatcher.Dispatcher()
dispatcher.map(OSC_ADDR + "/play", player.play)
dispatcher.map(OSC_ADDR + "/togglePause", player.togglePause)
dispatcher.map(OSC_ADDR + "/pause", player.setPause)
dispatcher.map(OSC_ADDR + "/stop", player.stop)
dispatcher.map(OSC_ADDR + "/loop", player.setLoop)
dispatcher.map(OSC_ADDR + "/setVolume", player.setVolume)
server = osc_server.ThreadingOSCUDPServer((IP, PORT), dispatcher)
print("Serving on {}".format(server.server_address))
server.serve_forever()