# importing vlc module from os import listdir from os.path import isfile, join from random import randint from time import sleep import paho.mqtt.client as mqtt from video import Video import multiprocessing import sys from random import randint from PIL import Image, ImageDraw import cv2 class App: def __init__(self, client, x, y): self.x = x self.y = y self.client = client self.video = Video(x, y) self.videos = [join("slave/videos", f) for f in listdir("slave/videos") if isfile(join("slave/videos", f))] print(self.videos) print(self.videos[randint(0, len(self.videos)-1)]) def on_connect(self, client, userdata, flags, rc): print("Connected with result code "+str(rc)) self.client.subscribe("slave") def on_message(self, client, userdata, msg): print(msg.topic+" "+str(msg.payload)) if msg.payload == b'idle': print("Idle") self.x = multiprocessing.Process(target = self.idle) self.x.start() elif msg.payload == b'stop': print("Stop") try: self.x.terminate() except: pass def idle(self): last = -1 secondlast = -1 while True: try: self.x.terminate() except: pass i = randint(0, len(self.videos)-1) if i == last or i == secondlast: continue secondlast = last last = i video = self.videos[i] print(video) self.video.start(video) self.blank() sleep(1) def blank(self): image = Image.new('RGB', (2000, 2000), color='black') cv2.namedWindow("window", cv2.WND_PROP_FULLSCREEN) cv2.moveWindow("window", self.x, self.y) cv2.setWindowProperty("window",cv2.WND_PROP_FULLSCREEN,cv2.WINDOW_FULLSCREEN) cv2.imshow("window", image) def main(): client = mqtt.Client() app = App(client, int(sys.argv[1]), int(sys.argv[2])) client.on_connect = app.on_connect client.on_message = app.on_message client.connect("10.1.1.162", 1883, 60) client.loop_forever() if __name__ == "__main__": main()