76 lines
1.8 KiB
Python
76 lines
1.8 KiB
Python
#!/usr/bin/python
|
|
|
|
from ntpath import altsep
|
|
import os
|
|
import tkinter as tk
|
|
from tkinter import *
|
|
|
|
def checkUSB():
|
|
stream = os.popen('lsusb | grep "Audio" | cut -d" " -f7')
|
|
output = stream.read()
|
|
if (output.find("PreSonus") != -1):
|
|
return True
|
|
else:
|
|
return False
|
|
|
|
def checkRecordStatus():
|
|
stream = os.popen('screen -list | grep -c "Pi-ARecord" || true')
|
|
output = stream.read()
|
|
if (output.find("1")):
|
|
return True
|
|
else:
|
|
return False
|
|
|
|
def record():
|
|
if checkRecordStatus():
|
|
os.system('screen -S record -X stuff "^C"')
|
|
btn_record_var.set('Start Recording')
|
|
else:
|
|
if (checkUSB()):
|
|
os.system('screen -S record -d -m arecord -D plughw:2,0 -f dat -vv /home/pi/test_input.wav')
|
|
btn_record_var.set('Stop Recording')
|
|
else:
|
|
btn_record_var.set('PreSonus N/A')
|
|
|
|
### tkinter variables
|
|
run_tk = True
|
|
light_mode = True
|
|
|
|
### tkinter theme
|
|
btn_light_color = '#BA09C6'
|
|
btn_dark_color = '#3C0340'
|
|
bg_light_color = '#F171DA'
|
|
bg_dark_color = '#8a3f7c'
|
|
text_light_color = '#000000'
|
|
text_dark_color = '#adadad'
|
|
|
|
### tkinter functions
|
|
def onExit():
|
|
global run_tk
|
|
if checkRecordStatus():
|
|
record()
|
|
run_tk = False
|
|
main_window.destroy()
|
|
exit()
|
|
|
|
def btnRecord():
|
|
record()
|
|
|
|
### tkinter main window setup
|
|
main_window = Tk()
|
|
main_window.attributes("-fullscreen", False)
|
|
main_window.protocol("WM_DELETE_WINDOW", onExit)
|
|
main_window.configure(background=bg_light_color)
|
|
main_window.title("Momo\'s Awesome Recorder")
|
|
main_window.columnconfigure(0, weight=1)
|
|
main_window.columnconfigure(1, weight=1)
|
|
main_window.columnconfigure(2, weight=1)
|
|
### tkinter record button
|
|
btn_record_var = tk.StringVar()
|
|
btn_record_var.set('Start Recording')
|
|
btn_record = Button(main_window, textvariable=btn_record_var, bg=btn_light_color, command=btnRecord)
|
|
btn_record.grid(column=0, row=0, sticky='NSEW', padx=5, pady=5)
|
|
|
|
while run_tk:
|
|
main_window.update_idletasks()
|
|
main_window.update() |