mirror of
https://github.com/cyberboy666/r_e_c_u_r.git
synced 2025-12-15 12:50:16 +01:00
working towards shader intergration
This commit is contained in:
51
actions.py
51
actions.py
@@ -3,6 +3,12 @@ import tracemalloc
|
|||||||
import data_centre.length_setter as length_setter
|
import data_centre.length_setter as length_setter
|
||||||
import sys
|
import sys
|
||||||
import os
|
import os
|
||||||
|
from pythonosc import osc_message_builder
|
||||||
|
from pythonosc import dispatcher
|
||||||
|
from pythonosc import osc_server
|
||||||
|
from pythonosc import dispatcher
|
||||||
|
import threading
|
||||||
|
import argparse
|
||||||
|
|
||||||
class Actions(object):
|
class Actions(object):
|
||||||
def __init__(self, tk, message_handler, data, video_driver, capture, shaders, display):
|
def __init__(self, tk, message_handler, data, video_driver, capture, shaders, display):
|
||||||
@@ -13,6 +19,7 @@ class Actions(object):
|
|||||||
self.capture = capture
|
self.capture = capture
|
||||||
self.shaders = shaders
|
self.shaders = shaders
|
||||||
self.display = display
|
self.display = display
|
||||||
|
self.server = self.setup_osc_server()
|
||||||
|
|
||||||
|
|
||||||
def move_browser_selection_down(self):
|
def move_browser_selection_down(self):
|
||||||
@@ -39,6 +46,15 @@ class Actions(object):
|
|||||||
else:
|
else:
|
||||||
getattr(self, setting['action'])(setting['value'])
|
getattr(self, setting['action'])(setting['value'])
|
||||||
|
|
||||||
|
def move_shaders_selection_down(self):
|
||||||
|
self.shaders.shaders_menu.navigate_menu_down()
|
||||||
|
|
||||||
|
def move_shaders_selection_up(self):
|
||||||
|
self.shaders.shaders_menu.navigate_menu_up()
|
||||||
|
|
||||||
|
def enter_on_shaders_selection(self):
|
||||||
|
self.shaders.enter_on_shaders_selection()
|
||||||
|
|
||||||
def clear_all_slots(self):
|
def clear_all_slots(self):
|
||||||
self.data.clear_all_slots()
|
self.data.clear_all_slots()
|
||||||
self.display.browser_menu.generate_browser_list()
|
self.display.browser_menu.generate_browser_list()
|
||||||
@@ -81,10 +97,8 @@ class Actions(object):
|
|||||||
self.video_driver.switch_players_and_start_video()
|
self.video_driver.switch_players_and_start_video()
|
||||||
|
|
||||||
def cycle_display_mode(self):
|
def cycle_display_mode(self):
|
||||||
self.display.top_menu_index = 0
|
|
||||||
self.display.selected_list_index = self.display.top_menu_index
|
|
||||||
if self.data.settings['other']['VIDEO_BACKEND']['value'] == 'openframeworks':
|
if self.data.settings['other']['VIDEO_BACKEND']['value'] == 'openframeworks':
|
||||||
display_modes = [["BROWSER",'NAV_BROWSER'],["SETTINGS",'NAV_SETTINGS'],[ "SAMPLER",'PLAYER'],["SHADERS",'SHAD_BROWSER']]
|
display_modes = [["BROWSER",'NAV_BROWSER'],["SETTINGS",'NAV_SETTINGS'],[ "SAMPLER",'PLAYER'],["SHADERS",'NAV_SHADERS']]
|
||||||
else:
|
else:
|
||||||
display_modes = [["BROWSER",'NAV_BROWSER'],["SETTINGS",'NAV_SETTINGS'],[ "SAMPLER",'PLAYER']]
|
display_modes = [["BROWSER",'NAV_BROWSER'],["SETTINGS",'NAV_SETTINGS'],[ "SAMPLER",'PLAYER']]
|
||||||
|
|
||||||
@@ -194,6 +208,12 @@ class Actions(object):
|
|||||||
else:
|
else:
|
||||||
self.message_handler.set_message('INFO', 'cant mirror in dev mode')
|
self.message_handler.set_message('INFO', 'cant mirror in dev mode')
|
||||||
|
|
||||||
|
def toggle_shaders(self):
|
||||||
|
if self.shaders.selected_status == 'RUNNING':
|
||||||
|
self.shaders.stop_selected_shader()
|
||||||
|
else:
|
||||||
|
self.shaders.start_selected_shader()
|
||||||
|
|
||||||
def toggle_player_mode(self):
|
def toggle_player_mode(self):
|
||||||
if self.data.player_mode == 'now':
|
if self.data.player_mode == 'now':
|
||||||
self.data.player_mode = 'next'
|
self.data.player_mode = 'next'
|
||||||
@@ -345,7 +365,7 @@ class Actions(object):
|
|||||||
|
|
||||||
def quit_the_program(self):
|
def quit_the_program(self):
|
||||||
self.video_driver.exit_all_players()
|
self.video_driver.exit_all_players()
|
||||||
self.video_driver.exit_osc_server('','')
|
self.exit_osc_server('','')
|
||||||
self.toggle_x_autorepeat()
|
self.toggle_x_autorepeat()
|
||||||
self.tk.destroy()
|
self.tk.destroy()
|
||||||
|
|
||||||
@@ -371,7 +391,30 @@ class Actions(object):
|
|||||||
self.display.settings_menu.generate_settings_list()
|
self.display.settings_menu.generate_settings_list()
|
||||||
|
|
||||||
|
|
||||||
|
def setup_osc_server(self):
|
||||||
|
server_parser = argparse.ArgumentParser()
|
||||||
|
server_parser.add_argument("--ip", default="127.0.0.1", help="the ip")
|
||||||
|
server_parser.add_argument("--port", type=int, default=9000, help="the port")
|
||||||
|
|
||||||
|
server_args = server_parser.parse_args()
|
||||||
|
|
||||||
|
this_dispatcher = dispatcher.Dispatcher()
|
||||||
|
this_dispatcher.map("/player/a/position", self.video_driver.receive_position, "a.a")
|
||||||
|
this_dispatcher.map("/player/b/position", self.video_driver.receive_position, "b.b")
|
||||||
|
this_dispatcher.map("/player/c/position", self.video_driver.receive_position, "c.c")
|
||||||
|
this_dispatcher.map("/player/a/status", self.video_driver.receive_status, "a.a")
|
||||||
|
this_dispatcher.map("/player/b/status", self.video_driver.receive_status, "b.b")
|
||||||
|
this_dispatcher.map("/player/c/status", self.video_driver.receive_status, "c.c")
|
||||||
|
this_dispatcher.map("/shutdown", self.exit_osc_server)
|
||||||
|
#this_dispatcher.map("/player/a/status", self.set_status)
|
||||||
|
|
||||||
|
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):
|
||||||
|
self.server.shutdown()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -148,27 +148,25 @@ class Display(object):
|
|||||||
self.display_text.tag_add("DISPLAY_MODE", 4.19, 4.28)
|
self.display_text.tag_add("DISPLAY_MODE", 4.19, 4.28)
|
||||||
## showing current shader info:
|
## showing current shader info:
|
||||||
shader = self.shaders.selected_shader
|
shader = self.shaders.selected_shader
|
||||||
self.display_text.insert(END, '{<6}:{<1}{<2} {^26} {<4}:{^5} \n'.format \
|
self.display_text.insert(END, '{:<6}:{:<1}{:<2} {:^10} '.format \
|
||||||
(self.shaders.selected_status,shader[shad_type], \
|
(self.shaders.selected_status,shader['shad_type'], \
|
||||||
shader[shad_index], shader[name][0:26], '--:--' ))
|
shader['shad_index'], shader['name'][0:26] ))
|
||||||
for i in range(shader[param_number]):
|
for i in range(min(4,shader['param_number'])):
|
||||||
self.display_text.insert(END, 'x{}{<2} '.format(i, self.shaders.selected_param_values[i]))
|
self.display_text.insert(END, 'x{}:{:<2} '.format(i, self.shaders.selected_param_values[i]))
|
||||||
self.display_text.insert(END,'\n')
|
self.display_text.insert(END,'\n')
|
||||||
self.display_text.tag_add("COLUMN_NAME", 5.0, 7.0)
|
self.display_text.tag_add("COLUMN_NAME", 5.0, 6.0)
|
||||||
## showing list of other shaders:
|
## showing list of other shaders:
|
||||||
shaders_list = self.shaders.shaders_menu_list
|
shaders_list = self.shaders.shaders_menu_list
|
||||||
number_of_shader_items = len(shaders_list)
|
number_of_shader_items = len(shaders_list)
|
||||||
shader_menu_height = self.MENU_HEIGHT - 1
|
|
||||||
for index in range(number_of_shader_items):
|
for index in range(number_of_shader_items):
|
||||||
if line_count > shader_menu_height :
|
if line_count > self.MENU_HEIGHT :
|
||||||
break
|
break
|
||||||
if index >= self.shaders.shaders_menu.top_menu_index:
|
if index >= self.shaders.shaders_menu.top_menu_index:
|
||||||
shader_line = shaders_list[index]
|
shader_line = shaders_list[index]
|
||||||
self.display_text.insert(END, '{:<30} {<2}'.format(shader_line['name'][0:30], shader_line['shad_type']))
|
self.display_text.insert(END, '{:<40} {:<5} \n'.format(shader_line['name'][0:30], shader_line['shad_type']))
|
||||||
line_count = line_count + 1
|
line_count = line_count + 1
|
||||||
for index in range(shader_menu_height - number_of_shader_items):
|
for index in range(self.MENU_HEIGHT - number_of_shader_items):
|
||||||
self.display_text.insert(END, '\n')
|
self.display_text.insert(END, '\n')
|
||||||
|
|
||||||
self._highlight_this_row(self.shaders.shaders_menu.selected_list_index - self.shaders.shaders_menu.top_menu_index)
|
self._highlight_this_row(self.shaders.shaders_menu.selected_list_index - self.shaders.shaders_menu.top_menu_index)
|
||||||
|
|
||||||
|
|
||||||
@@ -250,7 +248,7 @@ class Display(object):
|
|||||||
banner_list[0] = '<'
|
banner_list[0] = '<'
|
||||||
elif position > end:
|
elif position > end:
|
||||||
banner_list[max] = '>'
|
banner_list[max] = '>'
|
||||||
elif end - start != 0 and position:
|
elif end - start != 0 and not math.isnan(position) :
|
||||||
print('start value is {}, end value is {}, position is {}'.format(start, end, position))
|
print('start value is {}, end value is {}, position is {}'.format(start, end, position))
|
||||||
marker = int(math.floor(float(position - start) /
|
marker = int(math.floor(float(position - start) /
|
||||||
float(end - start) * (max - 1)) + 1)
|
float(end - start) * (max - 1)) + 1)
|
||||||
|
|||||||
@@ -171,6 +171,8 @@ class ShadersMenu(Menu):
|
|||||||
|
|
||||||
def __init__(self, data, message_handler, menu_height):
|
def __init__(self, data, message_handler, menu_height):
|
||||||
Menu.__init__(self, data, message_handler, menu_height)
|
Menu.__init__(self, data, message_handler, menu_height)
|
||||||
|
#self.top_menu_index = 1
|
||||||
|
#self.selected_list_index = 1
|
||||||
|
|
||||||
def generate_raw_shaders_list(self):
|
def generate_raw_shaders_list(self):
|
||||||
######## starts the recursive process of listing all folders and shader files to display ########
|
######## starts the recursive process of listing all folders and shader files to display ########
|
||||||
@@ -192,7 +194,7 @@ class ShadersMenu(Menu):
|
|||||||
if (is_open):
|
if (is_open):
|
||||||
next_path = '{}/{}'.format(root, folder)
|
next_path = '{}/{}'.format(root, folder)
|
||||||
next_level = current_level + 1
|
next_level = current_level + 1
|
||||||
self._add_folder_to_shader_list(next_path, next_level)
|
self._add_folder_to_shaders_list(next_path, next_level)
|
||||||
|
|
||||||
for f in files:
|
for f in files:
|
||||||
split_name = os.path.splitext(f)
|
split_name = os.path.splitext(f)
|
||||||
|
|||||||
@@ -3,18 +3,21 @@
|
|||||||
"NAV_BROWSER": ["move_browser_selection_up"],
|
"NAV_BROWSER": ["move_browser_selection_up"],
|
||||||
"PLAYER": ["seek_back_on_player"],
|
"PLAYER": ["seek_back_on_player"],
|
||||||
"NAV_SETTINGS": ["move_settings_selection_up"],
|
"NAV_SETTINGS": ["move_settings_selection_up"],
|
||||||
|
"NAV_SHADERS": ["move_shaders_selection_up"],
|
||||||
"LENGTH_SET": ["return_to_default_control_mode"]
|
"LENGTH_SET": ["return_to_default_control_mode"]
|
||||||
},
|
},
|
||||||
"b": {
|
"b": {
|
||||||
"NAV_BROWSER": ["move_browser_selection_down"],
|
"NAV_BROWSER": ["move_browser_selection_down"],
|
||||||
"PLAYER": ["seek_forward_on_player"],
|
"PLAYER": ["seek_forward_on_player"],
|
||||||
"NAV_SETTINGS": ["move_settings_selection_down"],
|
"NAV_SETTINGS": ["move_settings_selection_down"],
|
||||||
|
"NAV_SHADERS": ["move_shaders_selection_down"],
|
||||||
"LENGTH_SET": ["return_to_default_control_mode"]
|
"LENGTH_SET": ["return_to_default_control_mode"]
|
||||||
},
|
},
|
||||||
"c": {
|
"c": {
|
||||||
"NAV_BROWSER": ["enter_on_browser_selection"],
|
"NAV_BROWSER": ["enter_on_browser_selection"],
|
||||||
"PLAYER": ["toggle_action_on_player","toggle_show_on_player"],
|
"PLAYER": ["toggle_action_on_player","toggle_show_on_player"],
|
||||||
"NAV_SETTINGS": ["enter_on_settings_selection"],
|
"NAV_SETTINGS": ["enter_on_settings_selection"],
|
||||||
|
"NAV_SHADERS": ["enter_on_shaders_selection"],
|
||||||
"LENGTH_SET": ["record_fixed_length"]
|
"LENGTH_SET": ["record_fixed_length"]
|
||||||
},
|
},
|
||||||
"d": {
|
"d": {
|
||||||
@@ -53,7 +56,7 @@
|
|||||||
"DEFAULT": ["load_slot_5_into_next_player","toggle_screen_mirror"]
|
"DEFAULT": ["load_slot_5_into_next_player","toggle_screen_mirror"]
|
||||||
},
|
},
|
||||||
"p": {
|
"p": {
|
||||||
"DEFAULT": ["load_slot_6_into_next_player"]
|
"DEFAULT": ["load_slot_6_into_next_player","toggle_shaders"]
|
||||||
},
|
},
|
||||||
"q": {
|
"q": {
|
||||||
"DEFAULT": ["load_slot_7_into_next_player"]
|
"DEFAULT": ["load_slot_7_into_next_player"]
|
||||||
|
|||||||
20
r_e_c_u_r.py
20
r_e_c_u_r.py
@@ -4,6 +4,8 @@ import traceback
|
|||||||
from tkinter import Tk, Frame
|
from tkinter import Tk, Frame
|
||||||
import sys
|
import sys
|
||||||
import tracemalloc
|
import tracemalloc
|
||||||
|
import argparse
|
||||||
|
from pythonosc import udp_client
|
||||||
|
|
||||||
from actions import Actions
|
from actions import Actions
|
||||||
from data_centre.data import Data
|
from data_centre.data import Data
|
||||||
@@ -29,10 +31,20 @@ message_handler = MessageHandler()
|
|||||||
|
|
||||||
data = Data(message_handler)
|
data = Data(message_handler)
|
||||||
|
|
||||||
|
def setup_osc_client():
|
||||||
|
client_parser = argparse.ArgumentParser()
|
||||||
|
client_parser.add_argument("--ip", default="127.0.0.1", help="the ip")
|
||||||
|
client_parser.add_argument("--port", type=int, default=8000, help="the port")
|
||||||
|
|
||||||
|
client_args = client_parser.parse_args()
|
||||||
|
|
||||||
|
return udp_client.SimpleUDPClient(client_args.ip, client_args.port)
|
||||||
|
|
||||||
|
osc_client = setup_osc_client()
|
||||||
# setup the video driver
|
# setup the video driver
|
||||||
video_driver = VideoDriver(tk, message_handler, data)
|
video_driver = VideoDriver(tk, osc_client, message_handler, data)
|
||||||
capture = Capture(tk, message_handler, data)
|
capture = Capture(tk, osc_client, message_handler, data)
|
||||||
shaders = Shaders(tk, message_handler, data)
|
shaders = Shaders(tk, osc_client, message_handler, data)
|
||||||
|
|
||||||
# setup the display
|
# setup the display
|
||||||
display = Display(tk, video_driver, capture, shaders, message_handler, data)
|
display = Display(tk, video_driver, capture, shaders, message_handler, data)
|
||||||
@@ -55,6 +67,8 @@ def handle_error(exc, val, tb):
|
|||||||
print('traceback for error : {}'.format(traceback.format_exc()))
|
print('traceback for error : {}'.format(traceback.format_exc()))
|
||||||
message_handler.set_message('ERROR', val, traceback.format_exc())
|
message_handler.set_message('ERROR', val, traceback.format_exc())
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
tk.report_callback_exception = handle_error
|
tk.report_callback_exception = handle_error
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -7,8 +7,9 @@ import fractions
|
|||||||
class Capture(object):
|
class Capture(object):
|
||||||
PREVIEW_LAYER = 255
|
PREVIEW_LAYER = 255
|
||||||
|
|
||||||
def __init__(self, root, message_handler, data):
|
def __init__(self, root, osc_client, message_handler, data):
|
||||||
self.root = root
|
self.root = root
|
||||||
|
self.osc_client = osc_client
|
||||||
self.message_handler = message_handler
|
self.message_handler = message_handler
|
||||||
self.data = data
|
self.data = data
|
||||||
|
|
||||||
|
|||||||
@@ -2,22 +2,23 @@ import display_centre.menu as menu
|
|||||||
import os
|
import os
|
||||||
|
|
||||||
class Shaders(object):
|
class Shaders(object):
|
||||||
MENU_HEIGHT = 9
|
MENU_HEIGHT = 10
|
||||||
EMPTY_SHADER = dict(name='none',is_shader=True,shad_type='-',param_number=0,path='-',shad_index=0)
|
EMPTY_SHADER = dict(name='none',is_shader=True,shad_type='-',param_number=0,path='-',shad_index=0)
|
||||||
def __init__(self, root, message_handler, data):
|
def __init__(self, root, osc_client, message_handler, data):
|
||||||
self.root = root
|
self.root = root
|
||||||
|
self.osc_client = osc_client
|
||||||
self.message_handler = message_handler
|
self.message_handler = message_handler
|
||||||
self.data = data
|
self.data = data
|
||||||
self.shaders_menu = menu.ShadersMenu(self.data, self.message_handler, self.MENU_HEIGHT)
|
self.shaders_menu = menu.ShadersMenu(self.data, self.message_handler, self.MENU_HEIGHT )
|
||||||
self.selected_shader = self.EMPTY_SHADER
|
self.selected_shader = self.EMPTY_SHADER
|
||||||
self.shaders_menu_list = self.generate_shaders_list()
|
self.shaders_menu_list = self.generate_shaders_list()
|
||||||
print('shader list is {}'.format(self.shaders_menu_list))
|
print(self.shaders_menu_list)
|
||||||
|
if self.shaders_menu_list is not None:
|
||||||
#
|
pass
|
||||||
|
|
||||||
self.selected_status = '-'
|
self.selected_status = '-'
|
||||||
self.selected_param_values = [0,0,0,0,0,0,0,0]
|
self.selected_param_values = [0,0,0,0,0,0,0,0]
|
||||||
self.load_selected_shader()
|
#self.load_selected_shader()
|
||||||
|
|
||||||
def generate_shaders_list(self):
|
def generate_shaders_list(self):
|
||||||
shaders_menu_list = []
|
shaders_menu_list = []
|
||||||
@@ -32,7 +33,7 @@ class Shaders(object):
|
|||||||
shaders_menu_list.append(dict(name=line['name'],is_shader=True,shad_type=shad_type,param_number=parameter_number,path=path,shad_index=shad_i))
|
shaders_menu_list.append(dict(name=line['name'],is_shader=True,shad_type=shad_type,param_number=parameter_number,path=path,shad_index=shad_i))
|
||||||
shad_i = shad_i +1
|
shad_i = shad_i +1
|
||||||
else:
|
else:
|
||||||
shaders_menu_list.append(dict(name=line[name],is_shader=False,is_proc=None,param_number=None,path=None))
|
shaders_menu_list.append(dict(name=line['name'],is_shader=False,shad_type='',param_number=None,path=None,shad_index=None))
|
||||||
return shaders_menu_list
|
return shaders_menu_list
|
||||||
|
|
||||||
|
|
||||||
@@ -45,19 +46,31 @@ class Shaders(object):
|
|||||||
return False, ''
|
return False, ''
|
||||||
|
|
||||||
def determine_if_shader_file_is_processing(self, path):
|
def determine_if_shader_file_is_processing(self, path):
|
||||||
pass
|
return True
|
||||||
|
|
||||||
def determine_shader_parameter_number(self, path):
|
def determine_shader_parameter_number(self, path):
|
||||||
pass
|
return 4
|
||||||
|
|
||||||
def load_selected_shader(self):
|
def load_selected_shader(self):
|
||||||
pass
|
print(self.selected_shader)
|
||||||
|
is_proc = self.selected_shader['shad_type'] == 'p'
|
||||||
|
self.osc_client.send_message("/shader/load", [self.selected_shader['path'],is_proc,self.selected_shader['param_number']])
|
||||||
|
|
||||||
|
def start_selected_shader(self):
|
||||||
|
self.osc_client.send_message("/shader/start", True)
|
||||||
|
self.selected_status = 'RUNNING'
|
||||||
|
|
||||||
|
def stop_selected_shader(self):
|
||||||
|
self.osc_client.send_message("/shader/stop", True)
|
||||||
|
self.selected_status = 'READY'
|
||||||
|
|
||||||
def enter_on_shaders_selection(self):
|
def enter_on_shaders_selection(self):
|
||||||
|
index = self.shaders_menu.selected_list_index
|
||||||
is_file, name = self.shaders_menu.extract_file_type_and_name_from_menu_format(
|
is_file, name = self.shaders_menu.extract_file_type_and_name_from_menu_format(
|
||||||
self.menu_list[self.selected_list_index]['name'])
|
self.shaders_menu_list[index]['name'])
|
||||||
if is_file:
|
if is_file:
|
||||||
pass
|
self.selected_shader = self.shaders_menu_list[index]
|
||||||
|
self.load_selected_shader()
|
||||||
else:
|
else:
|
||||||
self.shader_menu.update_open_folders(name)
|
self.shaders_menu.update_open_folders(name)
|
||||||
self.generate_shaders_list()
|
self.shaders_menu_list = self.generate_shaders_list()
|
||||||
|
|||||||
@@ -1,19 +1,13 @@
|
|||||||
from video_centre.video_player import VideoPlayer
|
from video_centre.video_player import VideoPlayer
|
||||||
from video_centre.alt_video_player import AltVideoPlayer
|
from video_centre.alt_video_player import AltVideoPlayer
|
||||||
|
|
||||||
from pythonosc import osc_message_builder
|
|
||||||
from pythonosc import udp_client
|
|
||||||
from pythonosc import dispatcher
|
|
||||||
from pythonosc import osc_server
|
|
||||||
import argparse
|
|
||||||
import threading
|
|
||||||
|
|
||||||
class VideoDriver(object):
|
class VideoDriver(object):
|
||||||
|
|
||||||
MAX_LAYER = 254
|
MAX_LAYER = 254
|
||||||
|
|
||||||
def __init__(self, root, message_handler, data):
|
def __init__(self, root, osc_client, message_handler, data):
|
||||||
self.root = root
|
self.root = root
|
||||||
|
self.osc_client = osc_client
|
||||||
self.message_handler = message_handler
|
self.message_handler = message_handler
|
||||||
self.data = data
|
self.data = data
|
||||||
self.delay = 50
|
self.delay = 50
|
||||||
@@ -21,9 +15,6 @@ class VideoDriver(object):
|
|||||||
self.in_current_playing_cycle = False
|
self.in_current_playing_cycle = False
|
||||||
self.in_next_load_cycle = False
|
self.in_next_load_cycle = False
|
||||||
|
|
||||||
self.server = self.setup_osc_server()
|
|
||||||
self.osc_client = self.setup_osc_client()
|
|
||||||
|
|
||||||
self.layer = self.MAX_LAYER
|
self.layer = self.MAX_LAYER
|
||||||
|
|
||||||
if(self.data.settings['other']['VIDEO_BACKEND']['value'] == 'openframeworks'):
|
if(self.data.settings['other']['VIDEO_BACKEND']['value'] == 'openframeworks'):
|
||||||
@@ -135,40 +126,6 @@ class VideoDriver(object):
|
|||||||
def exit_last_player_after_delay(self):
|
def exit_last_player_after_delay(self):
|
||||||
self.root.after(100, self.last_player.exit)
|
self.root.after(100, self.last_player.exit)
|
||||||
|
|
||||||
def setup_osc_client(self):
|
|
||||||
client_parser = argparse.ArgumentParser()
|
|
||||||
client_parser.add_argument("--ip", default="127.0.0.1", help="the ip")
|
|
||||||
client_parser.add_argument("--port", type=int, default=8000, help="the port")
|
|
||||||
|
|
||||||
client_args = client_parser.parse_args()
|
|
||||||
|
|
||||||
return udp_client.SimpleUDPClient(client_args.ip, client_args.port)
|
|
||||||
|
|
||||||
def setup_osc_server(self):
|
|
||||||
server_parser = argparse.ArgumentParser()
|
|
||||||
server_parser.add_argument("--ip", default="127.0.0.1", help="the ip")
|
|
||||||
server_parser.add_argument("--port", type=int, default=9000, help="the port")
|
|
||||||
|
|
||||||
server_args = server_parser.parse_args()
|
|
||||||
|
|
||||||
this_dispatcher = dispatcher.Dispatcher()
|
|
||||||
this_dispatcher.map("/player/a/position", self.receive_position, "a.a")
|
|
||||||
this_dispatcher.map("/player/b/position", self.receive_position, "b.b")
|
|
||||||
this_dispatcher.map("/player/c/position", self.receive_position, "c.c")
|
|
||||||
this_dispatcher.map("/player/a/status", self.receive_status, "a.a")
|
|
||||||
this_dispatcher.map("/player/b/status", self.receive_status, "b.b")
|
|
||||||
this_dispatcher.map("/player/c/status", self.receive_status, "c.c")
|
|
||||||
this_dispatcher.map("/shutdown", self.exit_osc_server)
|
|
||||||
#this_dispatcher.map("/player/a/status", self.set_status)
|
|
||||||
|
|
||||||
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):
|
|
||||||
self.server.shutdown()
|
|
||||||
|
|
||||||
def receive_position(self, unused_addr, player_name, args):
|
def receive_position(self, unused_addr, player_name, args):
|
||||||
print("the position of player {} is set to {}".format(player_name,args))
|
print("the position of player {} is set to {}".format(player_name,args))
|
||||||
for player in [self.next_player, self.current_player, self.last_player]:
|
for player in [self.next_player, self.current_player, self.last_player]:
|
||||||
@@ -182,3 +139,5 @@ class VideoDriver(object):
|
|||||||
if player_name[0] in player.name:
|
if player_name[0] in player.name:
|
||||||
player.status = args
|
player.status = args
|
||||||
break
|
break
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user