Commit bf150e00 authored by Antoine Cellerier's avatar Antoine Cellerier

* fixed hue, contrast, gamma, brightness and saturation sliders

* added restore to default settings button (for those sliders)

parent 9c623237
...@@ -139,6 +139,7 @@ enum ...@@ -139,6 +139,7 @@ enum
FastStream_Event, FastStream_Event,
Adjust_Event, Adjust_Event,
RestoreDefaults_Event,
Hue_Event, Hue_Event,
Contrast_Event, Contrast_Event,
Brightness_Event, Brightness_Event,
...@@ -170,6 +171,7 @@ BEGIN_EVENT_TABLE(Interface, wxFrame) ...@@ -170,6 +171,7 @@ BEGIN_EVENT_TABLE(Interface, wxFrame)
EVT_MENU( Bookmarks_Event, Interface::OnShowDialog) EVT_MENU( Bookmarks_Event, Interface::OnShowDialog)
EVT_CHECKBOX( Adjust_Event, Interface::OnEnableAdjust) EVT_CHECKBOX( Adjust_Event, Interface::OnEnableAdjust)
EVT_BUTTON( RestoreDefaults_Event, Interface::OnRestoreDefaults)
EVT_TEXT( Ratio_Event, Interface::OnRatio) EVT_TEXT( Ratio_Event, Interface::OnRatio)
EVT_CHECKBOX( Visual_Event, Interface::OnEnableVisual) EVT_CHECKBOX( Visual_Event, Interface::OnEnableVisual)
...@@ -197,12 +199,12 @@ BEGIN_EVENT_TABLE(Interface, wxFrame) ...@@ -197,12 +199,12 @@ BEGIN_EVENT_TABLE(Interface, wxFrame)
/* Slider events */ /* Slider events */
EVT_COMMAND_SCROLL(SliderScroll_Event, Interface::OnSliderUpdate) EVT_COMMAND_SCROLL(SliderScroll_Event, Interface::OnSliderUpdate)
EVT_COMMAND_SCROLL(Hue_Event, Interface::OnHueUpdate) EVT_COMMAND_SCROLL(Hue_Event, Interface::OnAdjustUpdate)
EVT_COMMAND_SCROLL(Contrast_Event, Interface::OnContrastUpdate) EVT_COMMAND_SCROLL(Contrast_Event, Interface::OnAdjustUpdate)
EVT_COMMAND_SCROLL(Brightness_Event, Interface::OnBrightnessUpdate) EVT_COMMAND_SCROLL(Brightness_Event, Interface::OnAdjustUpdate)
EVT_COMMAND_SCROLL(Saturation_Event, Interface::OnSaturationUpdate) EVT_COMMAND_SCROLL(Saturation_Event, Interface::OnAdjustUpdate)
EVT_COMMAND_SCROLL(Gamma_Event, Interface::OnGammaUpdate) EVT_COMMAND_SCROLL(Gamma_Event, Interface::OnAdjustUpdate)
/* Custom events */ /* Custom events */
EVT_COMMAND(0, wxEVT_INTF, Interface::OnControlEvent) EVT_COMMAND(0, wxEVT_INTF, Interface::OnControlEvent)
...@@ -507,6 +509,11 @@ void Interface::CreateOurExtendedPanel() ...@@ -507,6 +509,11 @@ void Interface::CreateOurExtendedPanel()
wxStaticBoxSizer *adjust_sizer = wxStaticBoxSizer *adjust_sizer =
new wxStaticBoxSizer( adjust_box, wxVERTICAL ); new wxStaticBoxSizer( adjust_box, wxVERTICAL );
adjust_sizer->SetMinSize( -1, 50 ); adjust_sizer->SetMinSize( -1, 50 );
/* Create flex grid */
wxFlexGridSizer *adjust_gridsizer =
new wxFlexGridSizer( 6, 2, 0, 0);
adjust_gridsizer->AddGrowableCol(1);
/* Create every controls */ /* Create every controls */
...@@ -514,60 +521,52 @@ void Interface::CreateOurExtendedPanel() ...@@ -514,60 +521,52 @@ void Interface::CreateOurExtendedPanel()
wxCheckBox * adjust_check = new wxCheckBox( extra_frame, Adjust_Event, wxCheckBox * adjust_check = new wxCheckBox( extra_frame, Adjust_Event,
wxU(_("Enable"))); wxU(_("Enable")));
/* Create the restore to defaults button */
restoredefaults_button =
new wxButton( extra_frame, RestoreDefaults_Event,
wxU(_("Restore Defaults")), wxDefaultPosition);
wxBoxSizer *hue_sizer = new wxBoxSizer( wxHORIZONTAL );
wxStaticText *hue_text = new wxStaticText( extra_frame, -1, wxStaticText *hue_text = new wxStaticText( extra_frame, -1,
wxU(_("Hue")) ); wxU(_("Hue")) );
hue_slider = new wxSlider ( extra_frame, Hue_Event, 0, 0, hue_slider = new wxSlider ( extra_frame, Hue_Event, 0, 0,
360, wxDefaultPosition, wxDefaultSize ); 360, wxDefaultPosition, wxDefaultSize );
hue_sizer->Add(hue_text,1, 0 ,0);
hue_sizer->Add(hue_slider,1, 0 ,0);
hue_sizer->Layout();
wxBoxSizer *contrast_sizer = new wxBoxSizer( wxHORIZONTAL );
wxStaticText *contrast_text = new wxStaticText( extra_frame, -1, wxStaticText *contrast_text = new wxStaticText( extra_frame, -1,
wxU(_("Contrast")) ); wxU(_("Contrast")) );
contrast_slider = new wxSlider ( extra_frame, Contrast_Event, 0, 0, contrast_slider = new wxSlider ( extra_frame, Contrast_Event, 0, 0,
200, wxDefaultPosition, wxDefaultSize); 200, wxDefaultPosition, wxDefaultSize);
contrast_sizer->Add(contrast_text,1, 0 ,0);
contrast_sizer->Add(contrast_slider,1, 0 ,0);
contrast_sizer->Layout();
wxBoxSizer *brightness_sizer = new wxBoxSizer( wxHORIZONTAL );
wxStaticText *brightness_text = new wxStaticText( extra_frame, -1, wxStaticText *brightness_text = new wxStaticText( extra_frame, -1,
wxU(_("Brightness")) ); wxU(_("Brightness")) );
brightness_slider = new wxSlider ( extra_frame, Brightness_Event, 0, 0, brightness_slider = new wxSlider ( extra_frame, Brightness_Event, 0, 0,
200, wxDefaultPosition, wxDefaultSize) ; 200, wxDefaultPosition, wxDefaultSize) ;
brightness_sizer->Add(brightness_text,1,0,0);
brightness_sizer->Add(brightness_slider,1,0,0);
brightness_sizer->Layout();
wxBoxSizer *saturation_sizer = new wxBoxSizer( wxHORIZONTAL );
wxStaticText *saturation_text = new wxStaticText( extra_frame, -1, wxStaticText *saturation_text = new wxStaticText( extra_frame, -1,
wxU(_("Saturation")) ); wxU(_("Saturation")) );
saturation_slider = new wxSlider ( extra_frame, Saturation_Event, 0, 0, saturation_slider = new wxSlider ( extra_frame, Saturation_Event, 0, 0,
300, wxDefaultPosition, wxDefaultSize ); 300, wxDefaultPosition, wxDefaultSize );
saturation_sizer->Add(saturation_text,1,0,0);
saturation_sizer->Add(saturation_slider,1,0,0);
saturation_sizer->Layout();
wxBoxSizer *gamma_sizer = new wxBoxSizer( wxHORIZONTAL );
wxStaticText *gamma_text = new wxStaticText( extra_frame, -1, wxStaticText *gamma_text = new wxStaticText( extra_frame, -1,
wxU(_("Gamma")) ); wxU(_("Gamma")) );
gamma_slider = new wxSlider ( extra_frame, Gamma_Event, 0, 0, gamma_slider = new wxSlider ( extra_frame, Gamma_Event, 0, 0,
100, wxDefaultPosition, wxDefaultSize ); 100, wxDefaultPosition, wxDefaultSize );
gamma_sizer->Add(gamma_text,1,0,0);
gamma_sizer->Add(gamma_slider,1,0,0);
gamma_sizer->Layout();
adjust_sizer->Add(adjust_check, 1, wxEXPAND, 0);
adjust_sizer->Add(hue_sizer, 1, wxEXPAND, 0);
adjust_sizer->Add(contrast_sizer, 1, wxEXPAND, 0);
adjust_sizer->Add(brightness_sizer, 1, wxEXPAND, 0);
adjust_sizer->Add(saturation_sizer, 1, wxEXPAND, 0);
adjust_sizer->Add(gamma_sizer, 1, wxEXPAND, 0);
adjust_gridsizer->Add(adjust_check, 1, wxEXPAND, 0);
adjust_gridsizer->Add(restoredefaults_button, 1, wxEXPAND, 0);
adjust_gridsizer->Add(hue_text, 1, wxEXPAND, 0);
adjust_gridsizer->Add(hue_slider, 1, wxEXPAND, 0);
adjust_gridsizer->Add(contrast_text, 1, wxEXPAND, 0);
adjust_gridsizer->Add(contrast_slider, 1, wxEXPAND, 0);
adjust_gridsizer->Add(brightness_text, 1, wxEXPAND, 0);
adjust_gridsizer->Add(brightness_slider, 1, wxEXPAND, 0);
adjust_gridsizer->Add(saturation_text, 1, wxEXPAND, 0);
adjust_gridsizer->Add(saturation_slider, 1, wxEXPAND, 0);
adjust_gridsizer->Add(gamma_text, 1, wxEXPAND, 0);
adjust_gridsizer->Add(gamma_slider, 1, wxEXPAND, 0);
adjust_sizer->Add(adjust_gridsizer,1,wxEXPAND, 0);
extra_sizer->Add(adjust_sizer,1,wxBOTTOM,5); extra_sizer->Add(adjust_sizer,1,wxBOTTOM,5);
/* Create sizer to surround the other controls */ /* Create sizer to surround the other controls */
...@@ -649,6 +648,7 @@ void Interface::CreateOurExtendedPanel() ...@@ -649,6 +648,7 @@ void Interface::CreateOurExtendedPanel()
if( psz_filters && strstr( psz_filters, "adjust" ) ) if( psz_filters && strstr( psz_filters, "adjust" ) )
{ {
adjust_check->SetValue( 1 ); adjust_check->SetValue( 1 );
restoredefaults_button->Enable();
saturation_slider->Enable(); saturation_slider->Enable();
contrast_slider->Enable(); contrast_slider->Enable();
brightness_slider->Enable(); brightness_slider->Enable();
...@@ -658,6 +658,7 @@ void Interface::CreateOurExtendedPanel() ...@@ -658,6 +658,7 @@ void Interface::CreateOurExtendedPanel()
else else
{ {
adjust_check->SetValue( 0 ); adjust_check->SetValue( 0 );
restoredefaults_button->Disable();
saturation_slider->Disable(); saturation_slider->Disable();
contrast_slider->Disable(); contrast_slider->Disable();
brightness_slider->Disable(); brightness_slider->Disable();
...@@ -911,6 +912,7 @@ void Interface::OnEnableAdjust(wxCommandEvent& event) ...@@ -911,6 +912,7 @@ void Interface::OnEnableAdjust(wxCommandEvent& event)
vlc_object_release( p_vout ); vlc_object_release( p_vout );
} }
if( val.psz_string ) free( val.psz_string ); if( val.psz_string ) free( val.psz_string );
restoredefaults_button->Enable();
brightness_slider->Enable(); brightness_slider->Enable();
saturation_slider->Enable(); saturation_slider->Enable();
contrast_slider->Enable(); contrast_slider->Enable();
...@@ -954,6 +956,7 @@ void Interface::OnEnableAdjust(wxCommandEvent& event) ...@@ -954,6 +956,7 @@ void Interface::OnEnableAdjust(wxCommandEvent& event)
} }
if( val.psz_string ) free( val.psz_string ); if( val.psz_string ) free( val.psz_string );
} }
restoredefaults_button->Disable();
brightness_slider->Disable(); brightness_slider->Disable();
saturation_slider->Disable(); saturation_slider->Disable();
contrast_slider->Disable(); contrast_slider->Disable();
...@@ -964,29 +967,89 @@ void Interface::OnEnableAdjust(wxCommandEvent& event) ...@@ -964,29 +967,89 @@ void Interface::OnEnableAdjust(wxCommandEvent& event)
if(psz_new) free(psz_new); if(psz_new) free(psz_new);
} }
void Interface::OnHueUpdate( wxScrollEvent& event) void Interface::OnRestoreDefaults( wxCommandEvent &event)
{
config_PutInt( p_intf , "hue" , event.GetPosition() );
}
void Interface::OnSaturationUpdate( wxScrollEvent& event)
{ {
config_PutFloat( p_intf , "saturation" , (float)event.GetPosition()/100 ); hue_slider->SetValue(0);
} saturation_slider->SetValue(100);
brightness_slider->SetValue(100);
void Interface::OnBrightnessUpdate( wxScrollEvent& event) contrast_slider->SetValue(100),
{ gamma_slider->SetValue(10);
config_PutFloat( p_intf , "brightness", (float)event.GetPosition()/100 );
} wxScrollEvent *hscroll_event = new wxScrollEvent(0, Hue_Event, 0);
OnAdjustUpdate(*hscroll_event);
wxScrollEvent *sscroll_event = new wxScrollEvent(0, Saturation_Event, 100);
OnAdjustUpdate(*sscroll_event);
wxScrollEvent *bscroll_event = new wxScrollEvent(0, Brightness_Event, 100);
OnAdjustUpdate(*bscroll_event);
wxScrollEvent *cscroll_event = new wxScrollEvent(0, Contrast_Event, 100);
OnAdjustUpdate(*cscroll_event);
wxScrollEvent *gscroll_event = new wxScrollEvent(0, Gamma_Event, 10);
OnAdjustUpdate(*gscroll_event);
void Interface::OnContrastUpdate(wxScrollEvent& event)
{
config_PutFloat( p_intf , "contrast" , (float)event.GetPosition()/100 );
} }
void Interface::OnGammaUpdate(wxScrollEvent& event) void Interface::OnAdjustUpdate( wxScrollEvent &event)
{ {
config_PutFloat( p_intf , "gamma" , (float)event.GetPosition()/10 ); vout_thread_t *p_vout = (vout_thread_t *)vlc_object_find(p_intf, VLC_OBJECT_VOUT, FIND_ANYWHERE);
if(p_vout == NULL)
switch(event.GetId())
{
case Hue_Event:
config_PutInt( p_intf , "hue" , event.GetPosition() );
break;
case Saturation_Event:
config_PutFloat( p_intf , "saturation" , (float)event.GetPosition()/100 );
break;
case Brightness_Event:
config_PutFloat( p_intf , "brightness" , (float)event.GetPosition()/100 );
break;
case Contrast_Event:
config_PutFloat( p_intf , "contrast" , (float)event.GetPosition()/100 );
break;
case Gamma_Event:
config_PutFloat( p_intf , "gamma" , (float)event.GetPosition()/10 );
break;
}
else
{
vlc_value_t val;
switch(event.GetId())
{
case Hue_Event:
val.i_int = event.GetPosition();
var_Set(p_vout, "hue", val);
break;
case Saturation_Event:
val.f_float = (float)event.GetPosition()/100;
var_Set(p_vout, "saturation", val);
break;
case Brightness_Event:
val.f_float = (float)event.GetPosition()/100;
var_Set(p_vout, "brightness", val);
break;
case Contrast_Event:
val.f_float = (float)event.GetPosition()/100;
var_Set(p_vout, "contrast", val);
break;
case Gamma_Event:
val.f_float = (float)event.GetPosition()/10;
var_Set(p_vout, "gamma", val);
break;
}
vlc_object_release(p_vout);
}
} }
void Interface::OnRatio( wxCommandEvent& event ) void Interface::OnRatio( wxCommandEvent& event )
......
...@@ -196,6 +196,7 @@ public: ...@@ -196,6 +196,7 @@ public:
vlc_bool_t b_extra; vlc_bool_t b_extra;
wxStaticBox *adjust_box; wxStaticBox *adjust_box;
wxButton *restoredefaults_button;
wxSlider *brightness_slider; wxSlider *brightness_slider;
wxSlider *contrast_slider; wxSlider *contrast_slider;
wxSlider *saturation_slider; wxSlider *saturation_slider;
...@@ -236,11 +237,8 @@ private: ...@@ -236,11 +237,8 @@ private:
void OnFastStream( wxCommandEvent& event ); void OnFastStream( wxCommandEvent& event );
void OnEnableAdjust( wxCommandEvent& event ); void OnEnableAdjust( wxCommandEvent& event );
void OnHueUpdate( wxScrollEvent& event ); void OnRestoreDefaults( wxCommandEvent& event);
void OnContrastUpdate( wxScrollEvent& event ); void OnAdjustUpdate( wxScrollEvent& event );
void OnBrightnessUpdate( wxScrollEvent& event );
void OnSaturationUpdate( wxScrollEvent& event );
void OnGammaUpdate( wxScrollEvent& event );
void OnRatio( wxCommandEvent& event ); void OnRatio( wxCommandEvent& event );
void OnEnableVisual( wxCommandEvent& event ); void OnEnableVisual( wxCommandEvent& event );
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment