EditPanelScopeDialog *scope_dialog = gui->edit_panel->scope_dialog;
if( !scope_dialog || !scope_dialog->scope_gui ) return 0;
if( scope_dialog->scope_gui->use_refresh ) return 0;
+ if( scope_dialog->scope_gui->use_release ) return 0;
return scope_dialog->running();
}
EditPanelScopeDialog *scope_dialog = gui->edit_panel->scope_dialog;
if( !scope_dialog || !scope_dialog->scope_gui ) return;
if( scope_dialog->scope_gui->use_refresh && !refresh ) return;
+ if( scope_dialog->scope_gui->use_release && refresh >= 0 ) return;
scope_dialog->process(output);
}
{
int result = 0;
const char *undo_label = 0;
+ BC_WindowBase *window = get_canvas();
+ if( window && !window->get_video_on() )
+ draw_scope(refresh_frame, -1);
switch( gui->current_operation ) {
case CWINDOW_SCROLL:
use_vect_gain = session->use_vect_gain;
use_smooth = session->use_smooth;
use_refresh = session->use_refresh;
+ use_release = session->use_release;
use_graticule = session->use_graticule;
ScopeGUI::create_objects();
}
session->use_vect_gain = use_vect_gain;
session->use_smooth = use_smooth;
session->use_refresh = use_refresh;
+ session->use_release = use_release;
session->use_graticule = use_graticule;
}
use_vect_gain = 5;
use_smooth = 0;
use_refresh = 0;
+ use_release = 0;
use_graticule = 0;
afolders_w = 0;
show_vwindow = show_awindow = show_cwindow = show_gwindow = show_lwindow = 0;
use_vect_gain = 5;
use_smooth = 1;
use_refresh = 0;
+ use_release = 0;
use_graticule = 0;
if(mwindow->edl)
use_vect_gain = defaults->get("USE_VECT_GAIN", use_vect_gain);
use_smooth = defaults->get("USE_SMOOTH", use_smooth);
use_refresh = defaults->get("USE_REFRESH", use_refresh);
+ use_release = defaults->get("USE_RELEASE", use_release);
use_graticule = defaults->get("USE_GRATICULE", use_graticule);
//printf("MainSession::load_defaults 1\n");
defaults->update("USE_VECT_GAIN", use_vect_gain);
defaults->update("USE_SMOOTH", use_smooth);
defaults->update("USE_REFRESH", use_refresh);
+ defaults->update("USE_RELEASE", use_release);
defaults->update("USE_GRATICULE", use_graticule);
defaults->update("ABINS_W", afolders_w);
int use_vect_gain;
int use_smooth;
int use_refresh;
+ int use_release;
int use_graticule;
int afolders_w;
use_vect_gain = mwindow->session->use_vect_gain;
use_smooth = mwindow->session->use_smooth;
use_refresh = -1;
+ use_release = 0;
use_graticule = mwindow->session->use_graticule;
ScopeGUI::create_objects();
}
mwindow->session->use_vect_gain = use_vect_gain;
mwindow->session->use_smooth = use_smooth;
mwindow->session->use_refresh = 0;
+ mwindow->session->use_release = 0;
mwindow->session->use_graticule = use_graticule;
}
frame_w = 1;
use_smooth = 1;
use_refresh = 0;
+ use_release = 0;
use_wave_gain = 5;
use_vect_gain = 5;
use_hist = 0;
void ScopeGUI::update_toggles()
{
scope_menu->update_toggles();
+ settings->update_toggles();
}
ScopePanel::ScopePanel(ScopeGUI *gui, int x, int y, int w, int h)
break;
case SCOPE_REFRESH:
gui->use_refresh = v;
+ gui->use_release = 0;
break;
+ case SCOPE_RELEASE:
+ gui->use_release = v;
+ gui->use_refresh = 0;
}
gui->toggle_event();
gui->update_toggles();
: BC_PopupMenu(x, y, xS(125), _("Settings"))
{
this->gui = gui;
+ refresh_on = 0;
+ release_on = 0;
}
void ScopeSettings::create_objects()
if( gui->use_refresh >= 0 ) {
add_item(refresh_on =
new ScopeSettingOn(this, _("Refresh on Stop"), SCOPE_REFRESH));
+ add_item(release_on =
+ new ScopeSettingOn(this, _("Refresh on Release"), SCOPE_RELEASE));
refresh_on->set_checked(gui->use_refresh);
+ release_on->set_checked(gui->use_release);
}
add_item(new BC_MenuItem(_("-VectorWheel Grids-")));
}
}
+void ScopeSettings::update_toggles()
+{
+ if( refresh_on )
+ refresh_on->set_checked(gui->use_refresh);
+ if( release_on )
+ release_on->set_checked(gui->use_release);
+}
+
ScopeGratItem::ScopeGratItem(ScopeSettings *settings, const char *text, int idx)
: BC_MenuItem(text)
{
SCOPE_HISTOGRAM, SCOPE_HISTOGRAM_RGB,
SCOPE_WAVEFORM, SCOPE_WAVEFORM_RGB, SCOPE_WAVEFORM_PLY,
SCOPE_VECTORSCOPE, SCOPE_VECTORWHEEL,
- SCOPE_SMOOTH, SCOPE_REFRESH,
+ SCOPE_SMOOTH, SCOPE_REFRESH, SCOPE_RELEASE,
};
// Number of divisions in histogram.
public:
ScopeSettings(ScopeGUI *gui, int x, int y);
void create_objects();
+ void update_toggles();
ScopeGUI *gui;
ScopeSettingOn *smooth_on;
ScopeSettingOn *refresh_on;
+ ScopeSettingOn *release_on;
};
int use_hist_parade, use_wave_parade;
int bins[HIST_SECTIONS][TOTAL_BINS];
- int frame_w, use_smooth, use_refresh;
+ int frame_w, use_smooth;
+ int use_refresh, use_release;
int use_wave_gain, use_vect_gain;
};
EditPanelScopeDialog *scope_dialog = gui->edit_panel->scope_dialog;
if( !scope_dialog || !scope_dialog->scope_gui ) return 0;
if( scope_dialog->scope_gui->use_refresh ) return 0;
+ if( scope_dialog->scope_gui->use_release ) return 0;
return scope_dialog->running();
}
EditPanelScopeDialog *scope_dialog = gui->edit_panel->scope_dialog;
if( !scope_dialog || !scope_dialog->scope_gui ) return;
if( scope_dialog->scope_gui->use_refresh && !refresh ) return;
+ if( scope_dialog->scope_gui->use_release && refresh >= 0 ) return;
scope_dialog->process(output);
}
+int VWindowCanvas::button_release_event()
+{
+ BC_WindowBase *window = get_canvas();
+ if( window && !window->get_video_on() )
+ draw_scope(refresh_frame, -1);
+ return Canvas::button_release_event();
+}
+
void VWindowCanvas::draw_refresh(int flush)
{
if( !get_canvas()->get_video_on() ) {
public:
VWindowCanvas(MWindow *mwindow, VWindowGUI *gui);
void create_objects(EDL *edl);
+ int button_release_event();
void zoom_resize_window(float percentage);
int scope_on();
void draw_scope(VFrame *output, int refresh);
use_vect_gain = plugin->use_vect_gain;
use_smooth = plugin->use_smooth;
use_refresh = -1;
+ use_release = 0;
use_graticule = plugin->use_graticule;
ScopeGUI::create_objects();