mirror of
https://github.com/cyberboy666/r_e_c_u_r.git
synced 2025-12-05 16:00:06 +01:00
troubleshooting capture issue
This commit is contained in:
29
actions.py
29
actions.py
@@ -62,8 +62,12 @@ class Actions(object):
|
|||||||
self.shaders.shaders_menu.navigate_menu_up()
|
self.shaders.shaders_menu.navigate_menu_up()
|
||||||
|
|
||||||
def enter_on_shaders_selection(self):
|
def enter_on_shaders_selection(self):
|
||||||
is_shader, selected_shader = self.shaders.enter_on_shaders_selection()
|
##want to select shader if its not selected, and want to enter 'param' mode if it already is
|
||||||
if is_shader and selected_shader['shad_type'] == 'gen' and self.shaders.selected_status == '▶':
|
is_shader, is_selected_shader, selected_shader = self.shaders.enter_on_shaders_selection()
|
||||||
|
print('is selected shader: {}'.format(is_selected_shader))
|
||||||
|
if is_selected_shader and selected_shader['param_number'] > 0:
|
||||||
|
self.set_shader_param_mode()
|
||||||
|
elif is_shader and selected_shader['shad_type'] == 'gen' and self.shaders.selected_status == '▶':
|
||||||
self.video_driver.current_player.toggle_pause()
|
self.video_driver.current_player.toggle_pause()
|
||||||
|
|
||||||
def clear_all_slots(self):
|
def clear_all_slots(self):
|
||||||
@@ -421,6 +425,22 @@ class Actions(object):
|
|||||||
self.quit_the_program()
|
self.quit_the_program()
|
||||||
os.execv('/usr/bin/python3', [sys.argv[0],'/home/pi/r_e_c_u_r/r_e_c_u_r.py'])
|
os.execv('/usr/bin/python3', [sys.argv[0],'/home/pi/r_e_c_u_r/r_e_c_u_r.py'])
|
||||||
|
|
||||||
|
def set_shader_param_mode(self):
|
||||||
|
self.data.control_mode = 'SHADER_PARAM'
|
||||||
|
self.message_handler.set_message('INFO', '[ ]: focus < >: level ■: back')
|
||||||
|
self.shaders.focused_param = 0
|
||||||
|
|
||||||
|
def increase_this_param(self):
|
||||||
|
self.shaders.increase_this_param()
|
||||||
|
|
||||||
|
def decrease_this_param(self):
|
||||||
|
self.shaders.decrease_this_param()
|
||||||
|
|
||||||
|
def increase_param_focus(self):
|
||||||
|
self.shaders.focused_param = (self.shaders.focused_param + 1)%self.shaders.selected_shader['param_number']
|
||||||
|
|
||||||
|
def decrease_param_focus(self):
|
||||||
|
self.shaders.focused_param = (self.shaders.focused_param - 1)%self.shaders.selected_shader['param_number']
|
||||||
|
|
||||||
def set_fixed_length(self, value):
|
def set_fixed_length(self, value):
|
||||||
self.data.control_mode = 'LENGTH_SET'
|
self.data.control_mode = 'LENGTH_SET'
|
||||||
@@ -430,8 +450,9 @@ class Actions(object):
|
|||||||
|
|
||||||
def return_to_default_control_mode(self):
|
def return_to_default_control_mode(self):
|
||||||
if self.data.control_mode == 'LENGTH_SET':
|
if self.data.control_mode == 'LENGTH_SET':
|
||||||
pass
|
self.data.control_mode = 'NAV_SETTINGS'
|
||||||
self.data.control_mode = 'NAV_SETTINGS'
|
if self.data.control_mode == 'SHADER_PARAM':
|
||||||
|
self.data.control_mode = 'NAV_SHADERS'
|
||||||
|
|
||||||
def record_fixed_length(self):
|
def record_fixed_length(self):
|
||||||
if self.fixed_length_setter:
|
if self.fixed_length_setter:
|
||||||
|
|||||||
@@ -152,7 +152,10 @@ class Display(object):
|
|||||||
(self.shaders.selected_status,shader['shad_type'][0], \
|
(self.shaders.selected_status,shader['shad_type'][0], \
|
||||||
format(shader['shad_index'],'02d'), shader['name'][0:17] ))
|
format(shader['shad_index'],'02d'), shader['name'][0:17] ))
|
||||||
for i in range(min(4,shader['param_number'])):
|
for i in range(min(4,shader['param_number'])):
|
||||||
self.display_text.insert(END, 'x{}:{num:02d} '.format(i, num=self.shaders.selected_param_values[i]))
|
display_param = self.format_param_value(self.shaders.selected_param_values[i])
|
||||||
|
if display_param == 100:
|
||||||
|
display_param == 99
|
||||||
|
self.display_text.insert(END, 'x{}:{:02d}'.format(i, display_param))
|
||||||
self.display_text.insert(END,'\n')
|
self.display_text.insert(END,'\n')
|
||||||
self.display_text.tag_add("COLUMN_NAME", 5.0, 6.0)
|
self.display_text.tag_add("COLUMN_NAME", 5.0, 6.0)
|
||||||
## showing list of other shaders:
|
## showing list of other shaders:
|
||||||
@@ -317,3 +320,10 @@ class Display(object):
|
|||||||
return ''
|
return ''
|
||||||
else:
|
else:
|
||||||
return value
|
return value
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def format_param_value(value):
|
||||||
|
display_param = int(100 * value)
|
||||||
|
if display_param == 100:
|
||||||
|
display_param = 99
|
||||||
|
return display_param
|
||||||
|
|||||||
@@ -4,30 +4,35 @@
|
|||||||
"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"],
|
"NAV_SHADERS": ["move_shaders_selection_up"],
|
||||||
"LENGTH_SET": ["return_to_default_control_mode"]
|
"LENGTH_SET": ["return_to_default_control_mode"],
|
||||||
|
"SHADER_PARAM": ["decrease_this_param"]
|
||||||
},
|
},
|
||||||
"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"],
|
"NAV_SHADERS": ["move_shaders_selection_down"],
|
||||||
"LENGTH_SET": ["return_to_default_control_mode"]
|
"LENGTH_SET": ["return_to_default_control_mode"],
|
||||||
|
"SHADER_PARAM": ["increase_this_param"]
|
||||||
},
|
},
|
||||||
"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"],
|
"NAV_SHADERS": ["enter_on_shaders_selection"],
|
||||||
"LENGTH_SET": ["record_fixed_length"]
|
"LENGTH_SET": ["record_fixed_length"],
|
||||||
|
"SHADER_PARAM": ["return_to_default_control_mode"]
|
||||||
},
|
},
|
||||||
"d": {
|
"d": {
|
||||||
"DEFAULT": ["switch_to_next_player", "toggle_player_mode"]
|
"DEFAULT": ["switch_to_next_player", "toggle_player_mode"]
|
||||||
},
|
},
|
||||||
"e": {
|
"e": {
|
||||||
"DEFAULT": ["set_playing_sample_start_to_current_duration", "clear_playing_sample_start_time"]
|
"DEFAULT": ["set_playing_sample_start_to_current_duration", "clear_playing_sample_start_time"],
|
||||||
|
"SHADER_PARAM": ["decrease_param_focus"]
|
||||||
},
|
},
|
||||||
"f": {
|
"f": {
|
||||||
"DEFAULT": ["set_playing_sample_end_to_current_duration", "clear_playing_sample_end_time"]
|
"DEFAULT": ["set_playing_sample_end_to_current_duration", "clear_playing_sample_end_time"],
|
||||||
|
"SHADER_PARAM": ["increase_param_focus"]
|
||||||
},
|
},
|
||||||
"g": {
|
"g": {
|
||||||
"DEFAULT": ["toggle_capture_preview", "toggle_capture_recording"]},
|
"DEFAULT": ["toggle_capture_preview", "toggle_capture_recording"]},
|
||||||
|
|||||||
18
shader_experiments/capture_output.txt
Normal file
18
shader_experiments/capture_output.txt
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
pi@raspberrypi:~ $ pivideo -q all -v
|
||||||
|
PiVideo Version 1.13
|
||||||
|
Port used for video processor is: i2c1
|
||||||
|
PiCapture SD1 is ready
|
||||||
|
No active video detected
|
||||||
|
Selected video source is: auto
|
||||||
|
Active video source is: video1
|
||||||
|
Raspberry Pi camera port is not active
|
||||||
|
Video processor firmware version: 07-07811E
|
||||||
|
Video processor hardware id: 583F861021C29880
|
||||||
|
|
||||||
|
pi@raspberrypi:~ $ raspivid -md 6 -awbg 1.0,1.0 -awb off -ex off -o
|
||||||
|
mmal: mmal_vc_component_create: failed to create component 'vc.ril.camera' (1:ENOMEM)
|
||||||
|
mmal: mmal_component_create_core: could not create component 'vc.ril.camera' (1)
|
||||||
|
mmal: Failed to create camera component
|
||||||
|
mmal: main: Failed to create camera component
|
||||||
|
mmal: Camera is not detected. Please check carefully the camera module is installed correctly
|
||||||
|
|
||||||
@@ -27,6 +27,7 @@ class Capture(object):
|
|||||||
self.update_capture_settings()
|
self.update_capture_settings()
|
||||||
try:
|
try:
|
||||||
self.device = picamera.PiCamera(resolution=self.resolution, framerate=self.framerate, sensor_mode = self.sensor_mode)
|
self.device = picamera.PiCamera(resolution=self.resolution, framerate=self.framerate, sensor_mode = self.sensor_mode)
|
||||||
|
self.message_handler.set_message('INFO', 'capture didnt error ?')
|
||||||
except picamera.exc.PiCameraError as e:
|
except picamera.exc.PiCameraError as e:
|
||||||
self.use_capture = False
|
self.use_capture = False
|
||||||
print('camera exception is {}'.format(e))
|
print('camera exception is {}'.format(e))
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import os
|
|||||||
|
|
||||||
class Shaders(object):
|
class Shaders(object):
|
||||||
MENU_HEIGHT = 10
|
MENU_HEIGHT = 10
|
||||||
|
PARAM_STEP = 0.2
|
||||||
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, osc_client, message_handler, data):
|
def __init__(self, root, osc_client, message_handler, data):
|
||||||
self.root = root
|
self.root = root
|
||||||
@@ -11,13 +12,14 @@ class Shaders(object):
|
|||||||
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.focused_param = None
|
||||||
self.shaders_menu_list = self.generate_shaders_list()
|
self.shaders_menu_list = self.generate_shaders_list()
|
||||||
print(self.shaders_menu_list)
|
print(self.shaders_menu_list)
|
||||||
if self.shaders_menu_list is not None:
|
if self.shaders_menu_list is not None:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
self.selected_status = '-' ## going to try using symbols for this : '-' means empty, '▶' means running, '■' means not running, '!' means error
|
self.selected_status = '-' ## going to try using symbols for this : '-' means empty, '▶' means running, '■' means not running, '!' means error
|
||||||
self.selected_param_values = [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):
|
||||||
@@ -67,6 +69,7 @@ class Shaders(object):
|
|||||||
|
|
||||||
def load_selected_shader(self):
|
def load_selected_shader(self):
|
||||||
print(self.selected_shader)
|
print(self.selected_shader)
|
||||||
|
self.selected_param_values = [0.0,0.0,0.0,0.0]
|
||||||
is_pro = self.selected_shader['shad_type'] == 'pro'
|
is_pro = self.selected_shader['shad_type'] == 'pro'
|
||||||
self.osc_client.send_message("/shader/load", [self.selected_shader['path'],is_pro,self.selected_shader['param_number']])
|
self.osc_client.send_message("/shader/load", [self.selected_shader['path'],is_pro,self.selected_shader['param_number']])
|
||||||
if not self.selected_status == '▶':
|
if not self.selected_status == '▶':
|
||||||
@@ -84,10 +87,39 @@ class Shaders(object):
|
|||||||
index = self.shaders_menu.selected_list_index
|
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.shaders_menu_list[index]['name'])
|
self.shaders_menu_list[index]['name'])
|
||||||
if is_file:
|
is_selected_shader = False
|
||||||
|
if is_file and name == self.selected_shader['name']:
|
||||||
|
is_selected_shader = True
|
||||||
|
elif is_file:
|
||||||
self.selected_shader = self.shaders_menu_list[index]
|
self.selected_shader = self.shaders_menu_list[index]
|
||||||
self.load_selected_shader()
|
self.load_selected_shader()
|
||||||
else:
|
else:
|
||||||
self.shaders_menu.update_open_folders(name)
|
self.shaders_menu.update_open_folders(name)
|
||||||
self.shaders_menu_list = self.generate_shaders_list()
|
self.shaders_menu_list = self.generate_shaders_list()
|
||||||
return is_file, self.selected_shader
|
return is_file, is_selected_shader, self.selected_shader
|
||||||
|
|
||||||
|
def increase_this_param(self):
|
||||||
|
param = self.focused_param
|
||||||
|
current_amount = self.selected_param_values[param]
|
||||||
|
amount = self.get_new_param_amount(current_amount,self.PARAM_STEP)
|
||||||
|
self.set_param_to_amount(param, amount)
|
||||||
|
|
||||||
|
def decrease_this_param(self):
|
||||||
|
param = self.focused_param
|
||||||
|
current_amount = self.selected_param_values[param]
|
||||||
|
amount = self.get_new_param_amount(current_amount,-self.PARAM_STEP)
|
||||||
|
self.set_param_to_amount(param, amount)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def get_new_param_amount(current, change):
|
||||||
|
if current + change > 1:
|
||||||
|
return 1
|
||||||
|
elif current + change < 0:
|
||||||
|
return 0
|
||||||
|
else:
|
||||||
|
return current + change
|
||||||
|
|
||||||
|
def set_param_to_amount(self, param, amount):
|
||||||
|
self.osc_client.send_message("/shader/param", [param, amount] )
|
||||||
|
self.selected_param_values[param] = amount
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user