diff --git a/code/piplayer4.py b/code/piplayer4.py index ef658c3..210f737 100644 --- a/code/piplayer4.py +++ b/code/piplayer4.py @@ -14,7 +14,7 @@ from socketIO_client import SocketIO, LoggingNamespace # https://gist.github.com from threading import Thread -logging.basicConfig(level=logging.INFO, format='%(asctime)s %(levelname)s - %(message)s') +logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(levelname)s - %(message)s') logging.info('Initializing TEST') # Configuration @@ -23,7 +23,7 @@ SOUND_SCANNING = "mnt/INTERNAL/sounds/scanning.mp3" SOUND_OK = "mnt/INTERNAL/sounds/ok-05.mp3" SOUND_SCAN_FAIL = "mnt/INTERNAL/sounds/fail-05.mp3" SOUND_PLAYBACK_ERROR = "mnt/INTERNAL/sounds/error.mp3" -QR_SCANNER_TIMEOUT = 3 +QR_SCANNER_TIMEOUT = 4 # photo sensor on PIN 17 @@ -52,7 +52,7 @@ GPIO.setup(PIN_PLAY, GPIO.IN, pull_up_down=GPIO.PUD_UP) GPIO.setup(PIN_NEXT, GPIO.IN, pull_up_down=GPIO.PUD_UP) -pending_play = False # to determine whether we should send a play command after we received a pushQueue event +pending_play = False # to determine whether we should send a play command after we received a pushState event is_playing = False # for toggling play/pause (stores the current status from the pushState events) socketIO = SocketIO('127.0.0.1', 3000) @@ -88,23 +88,28 @@ def next_callback(channel): def on_pushState(*args): logging.debug(args[0]['status']) - global is_playing + global is_playing, pending_play if args[0]['status'] == 'play': is_playing = True + pending_play = False else: is_playing = False + if pending_play: + logging.info("start pending play --------------") + socketIO.emit('play') def on_pushQueue(*args): - logging.info("pushQueue") - logging.info(args[0]) - global pending_play - logging.info(pending_play) - if pending_play: -# if not args[0]: -# play_sound(SOUND_PLAYBACK_ERROR) -# else: - socketIO.emit('play') - pending_play = False + return +# logging.info("pushQueue") +# logging.info(args[0]) +# global pending_play +# logging.info(pending_play) +# if pending_play: +## if not args[0]: +## play_sound(SOUND_PLAYBACK_ERROR) +## else: +# socketIO.emit('play', '1') +# pending_play = False def queue_events_thread(): socketIO.wait() @@ -116,8 +121,6 @@ GPIO.add_event_detect(PIN_NEXT, GPIO.FALLING, callback=next_callback, bouncetime try: - play_sound(SOUND_OK) - socketIO.on('pushQueue', on_pushQueue) socketIO.on('pushState', on_pushState) listener_thread = Thread(target=queue_events_thread) @@ -129,7 +132,7 @@ try: GPIO.wait_for_edge(PIN_SENSOR, GPIO.FALLING) # TEST logging.info('Photo sensor active, activating light and camera') - play_sound(SOUND_SCANNING) + #play_sound(SOUND_SCANNING) # turn LED on GPIO.output(PIN_LED, GPIO.HIGH) @@ -149,19 +152,20 @@ try: if (poll_result): # play confirmation sound - play_sound(SOUND_OK) - socketIO.emit('removeFromQueue', 0) + #play_sound(SOUND_OK) + #socketIO.emit('removeFromQueue', '0') qr_code = zbarcam.stdout.readline().rstrip() qr_code = qr_code.decode("utf-8") # python3 logging.info("QR Code: " + qr_code) - pending_play = True + socketIO.emit('clearQueue') if qr_code.startswith("http://"): socketIO.emit('addToQueue', {'service':'webradio','uri':qr_code}) elif qr_code.startswith("spotify:"): - socketIO.emit('addToQueue', {'service':'spop','uri':qr_code}) + #socketIO.emit('addToQueue', {'service':'spop','uri':qr_code}) + socketIO.emit('addToQueue', {'uri':'mnt/NAS/Audio/Singles/Blazin_Squad_-_Flip_Reverse.mp3'}) else: # create full path if (qr_code.startswith("/")): @@ -170,9 +174,11 @@ try: logging.info("full_path: " + full_path) socketIO.emit('addToQueue', {'uri':full_path}) + pending_play = True + else: logging.warning('Timeout on zbarcam') - play_sound(SOUND_SCAN_FAIL) + #play_sound(SOUND_SCAN_FAIL) zbarcam.terminate() GPIO.output(PIN_LED, GPIO.LOW)