mirror of
https://github.com/cyberboy666/r_e_c_u_r.git
synced 2025-12-12 11:20:15 +01:00
merge with dev
This commit is contained in:
80
actions.py
80
actions.py
@@ -29,6 +29,7 @@ class Actions(object):
|
||||
self.capture = None
|
||||
self.serial_port_process = None
|
||||
self.openframeworks_process = None
|
||||
self.remote_process = None
|
||||
self.set_capture_object('value')
|
||||
self.server = self.setup_osc_server()
|
||||
|
||||
@@ -47,6 +48,13 @@ class Actions(object):
|
||||
def move_browser_selection_up(self):
|
||||
self.display.browser_menu.navigate_menu_up()
|
||||
|
||||
def move_browser_selection_page_down(self):
|
||||
self.display.browser_menu.navigate_menu_page_down()
|
||||
|
||||
def move_browser_selection_page_up(self):
|
||||
self.display.browser_menu.navigate_menu_page_up()
|
||||
|
||||
|
||||
def enter_on_browser_selection(self):
|
||||
self.display.browser_menu.enter_on_browser_selection()
|
||||
|
||||
@@ -56,6 +64,13 @@ class Actions(object):
|
||||
def move_settings_selection_up(self):
|
||||
self.display.settings_menu.navigate_menu_up()
|
||||
|
||||
def move_settings_selection_page_down(self):
|
||||
self.display.settings_menu.navigate_menu_page_down()
|
||||
|
||||
def move_settings_selection_page_up(self):
|
||||
self.display.settings_menu.navigate_menu_page_up()
|
||||
|
||||
|
||||
def enter_on_settings_selection(self):
|
||||
is_setting, setting = self.display.settings_menu.enter_on_setting_selection()
|
||||
if is_setting:
|
||||
@@ -71,6 +86,13 @@ class Actions(object):
|
||||
def move_shaders_selection_up(self):
|
||||
self.shaders.shaders_menu.navigate_menu_up()
|
||||
|
||||
def move_shaders_selection_page_down(self):
|
||||
self.shaders.shaders_menu.navigate_menu_page_down()
|
||||
|
||||
def move_shaders_selection_page_up(self):
|
||||
self.shaders.shaders_menu.navigate_menu_page_up()
|
||||
|
||||
|
||||
def enter_on_shaders_selection(self):
|
||||
##want to select shader if its not selected, and want to enter 'param' mode if it already is
|
||||
is_shader, is_selected_shader, selected_shader = self.shaders.enter_on_shaders_selection()
|
||||
@@ -709,8 +731,10 @@ class Actions(object):
|
||||
self.video_driver.exit_all_players()
|
||||
self.exit_openframeworks()
|
||||
self.exit_osc_server('','')
|
||||
self.create_client_and_shutdown_osc_server()
|
||||
self.stop_serial_port_process()
|
||||
self.stop_openframeworks_process()
|
||||
self.stop_remote_process()
|
||||
self.toggle_x_autorepeat()
|
||||
self.tk.destroy()
|
||||
|
||||
@@ -808,14 +832,59 @@ class Actions(object):
|
||||
this_dispatcher.map("/shutdown", self.exit_osc_server)
|
||||
#this_dispatcher.map("/player/a/status", self.set_status)
|
||||
|
||||
osc_server.ThreadingOSCUDPServer.allow_reuse_address = True
|
||||
server = osc_server.ThreadingOSCUDPServer((server_args.ip, server_args.port), this_dispatcher)
|
||||
server_thread = threading.Thread(target=server.serve_forever)
|
||||
server_thread.start()
|
||||
return server
|
||||
|
||||
def exit_osc_server(self, unused_addr, args):
|
||||
print('shutting down of osc server')
|
||||
self.server.shutdown()
|
||||
|
||||
def create_client_and_shutdown_osc_server(self):
|
||||
from pythonosc import udp_client
|
||||
client_parser = argparse.ArgumentParser()
|
||||
client_parser.add_argument("--ip", default=self.data.get_ip_for_osc_client(), help="the ip")
|
||||
client_parser.add_argument("--port", type=int, default=8080, help="the port")
|
||||
|
||||
client_args = client_parser.parse_args()
|
||||
|
||||
client = udp_client.SimpleUDPClient(client_args.ip, client_args.port)
|
||||
client.send_message("/shutdown", True)
|
||||
|
||||
def toggle_access_point(self, setting_value):
|
||||
osc_setting_state = self.data.settings['user_input']['OSC_INPUT']['value']
|
||||
self.data.settings['user_input']['OSC_INPUT']['value'] = 'disabled'
|
||||
self.tk.after(2000, self.toggle_access_point_delay, setting_value, osc_setting_state)
|
||||
|
||||
def toggle_access_point_delay(self, setting_value, osc_setting_state ):
|
||||
if setting_value == 'enabled':
|
||||
subprocess.call(['sudo', 'bash', '/home/pi/raspiApWlanScripts/switchToAP.sh'])
|
||||
else:
|
||||
subprocess.call(['sudo', 'bash', '/home/pi/raspiApWlanScripts/switchToWlan.sh'])
|
||||
self.tk.after(6000, self.enable_osc, osc_setting_state)
|
||||
|
||||
def toggle_remote_server(self, setting_value):
|
||||
osc_setting_state = self.data.settings['user_input']['OSC_INPUT']['value']
|
||||
self.data.settings['user_input']['OSC_INPUT']['value'] = 'disabled'
|
||||
self.tk.after(2000, self.toggle_remote_server_delay, setting_value, osc_setting_state)
|
||||
|
||||
def toggle_remote_server_delay(self, setting_value, osc_setting_state):
|
||||
if setting_value == 'enabled':
|
||||
self.remote_process = subprocess.Popen(['node', '/home/pi/r_e_m_o_t_e/webserver.js'])
|
||||
else:
|
||||
self.stop_remote_process()
|
||||
self.data.settings['user_input']['OSC_INPUT']['value'] = osc_setting_state
|
||||
|
||||
def enable_osc(self, osc_setting_state):
|
||||
self.data.settings['user_input']['OSC_INPUT']['value'] = osc_setting_state
|
||||
|
||||
|
||||
def show_ip(self, *args):
|
||||
address = self.data.get_ip_address()
|
||||
self.message_handler.set_message('INFO', 'ip is {}:8080'.format(address))
|
||||
|
||||
def create_serial_port_process(self):
|
||||
if self.serial_port_process == None:
|
||||
self.serial_port_process = subprocess.Popen("exec " + "ttymidi -s /dev/serial0 -b 38400 -n serial", shell=True)
|
||||
@@ -826,6 +895,12 @@ class Actions(object):
|
||||
self.serial_port_process.kill()
|
||||
self.serial_port_process = None
|
||||
|
||||
|
||||
def stop_remote_process(self):
|
||||
if self.remote_process is not None:
|
||||
self.remote_process.kill()
|
||||
self.remote_process = None
|
||||
|
||||
def restart_openframeworks(self):
|
||||
self.reset_players()
|
||||
self.exit_openframeworks()
|
||||
@@ -904,6 +979,11 @@ class Actions(object):
|
||||
if os.path.exists(path):
|
||||
os.remove(path)
|
||||
|
||||
def eject_all_usb_drives(self):
|
||||
for i in range(1, 4):
|
||||
if os.path.exists('/dev/sda{}'.format(i)):
|
||||
subprocess.call(['sudo', 'eject', '/dev/sda{}'.format(i)])
|
||||
|
||||
# TODO: make this interrogate the various components for available routes to parse
|
||||
# this would include eg a custom script module..
|
||||
@property
|
||||
|
||||
Reference in New Issue
Block a user