Commit a3eb2a70 authored by Antoine Cellerier's avatar Antoine Cellerier

Implement color change for colorthres and extract filters. Fix dial for rotate filter.

parent 649840af
......@@ -126,14 +126,10 @@ ExtVideo::ExtVideo( intf_thread_t *_p_intf, QWidget *_parent ) :
SETUP_VFILTER_OPTION( brightnessThresholdCheck, stateChanged(int) )
SETUP_VFILTER( extract )
SETUP_VFILTER_OPTION( extractRedSlider, valueChanged(int) )
SETUP_VFILTER_OPTION( extractGreenSlider, valueChanged(int) )
SETUP_VFILTER_OPTION( extractBlueSlider, valueChanged(int) )
SETUP_VFILTER_OPTION( extractComponentText, textChanged(QString) )
SETUP_VFILTER( colorthres )
SETUP_VFILTER_OPTION( colorthresRedSlider, valueChanged(int) )
SETUP_VFILTER_OPTION( colorthresGreenSlider, valueChanged(int) )
SETUP_VFILTER_OPTION( colorthresBlueSlider, valueChanged(int) )
SETUP_VFILTER_OPTION( colorthresColorText, textChanged(QString) )
SETUP_VFILTER_OPTION( colorthresSaturationthresSlider, valueChanged(int) )
SETUP_VFILTER_OPTION( colorthresSimilaritythresSlider, valueChanged(int) )
......@@ -165,6 +161,8 @@ ExtVideo::ExtVideo( intf_thread_t *_p_intf, QWidget *_parent ) :
SETUP_VFILTER( rotate )
SETUP_VFILTER_OPTION( rotateAngleDial, valueChanged(int) )
ui.rotateAngleDial->setWrapping( true );
ui.rotateAngleDial->setNotchesVisible( true );
SETUP_VFILTER( puzzle )
SETUP_VFILTER_OPTION( puzzleRowsSpin, valueChanged(int) )
......@@ -379,7 +377,13 @@ void ExtVideo::setWidgetValue( QObject *widget )
else if( checkbox ) checkbox->setCheckState( val.i_int? Qt::Checked
: Qt::Unchecked );
else if( spinbox ) spinbox->setValue( val.i_int );
else if( dial ) dial->setValue( val.i_int );
else if( dial ) dial->setValue( (540-val.i_int)%360 );
else if( lineedit )
{
char str[30];
sprintf( str, "%06X", val.i_int );
lineedit->setText( str );
}
else msg_Warn( p_intf, "Oops %s %s %d", __FILE__, __func__, __LINE__ );
}
else if( i_type == VLC_VAR_FLOAT )
......@@ -448,8 +452,8 @@ void ExtVideo::updateFilterOptions()
if( slider ) i_int = slider->value();
else if( checkbox ) i_int = checkbox->checkState() == Qt::Checked;
else if( spinbox ) i_int = spinbox->value();
else if( dial ) i_int = dial->value();
else if( lineedit ) i_int = lineedit->text().toInt();
else if( dial ) i_int = (540-dial->value())%360;
else if( lineedit ) i_int = lineedit->text().toInt(NULL,16);
else msg_Warn( p_intf, "Oops %s %s %d", __FILE__, __func__, __LINE__ );
config_PutInt( p_intf, option.toStdString().c_str(), i_int );
if( i_type == VLC_VAR_INTEGER )
......
......@@ -5,8 +5,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>995</width>
<height>575</height>
<width>1109</width>
<height>585</height>
</rect>
</property>
<property name="windowTitle" >
......@@ -19,6 +19,41 @@
<property name="spacing" >
<number>6</number>
</property>
<item rowspan="3" row="3" column="0" >
<widget class="QGroupBox" name="extractEnable" >
<property name="title" >
<string>_("Color extraction")</string>
</property>
<property name="checkable" >
<bool>true</bool>
</property>
<property name="checked" >
<bool>false</bool>
</property>
<layout class="QGridLayout" >
<property name="margin" >
<number>9</number>
</property>
<property name="spacing" >
<number>6</number>
</property>
<item row="0" column="0" >
<widget class="QLabel" name="label_6" >
<property name="text" >
<string>_("Color")</string>
</property>
</widget>
</item>
<item row="0" column="1" >
<widget class="QLineEdit" name="extractComponentText" >
<property name="inputMask" >
<string>>HHHHHH;#</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="11" column="0" >
<widget class="QCheckBox" name="invertEnable" >
<property name="text" >
......@@ -44,142 +79,190 @@
<property name="spacing" >
<number>6</number>
</property>
<item row="4" column="0" >
<item row="2" column="0" >
<widget class="QLabel" name="label_14" >
<property name="text" >
<string>_("Similarity")</string>
</property>
</widget>
</item>
<item row="4" column="1" >
<item row="2" column="1" >
<widget class="QSlider" name="colorthresSimilaritythresSlider" >
<property name="orientation" >
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="3" column="1" >
<item row="1" column="1" >
<widget class="QSlider" name="colorthresSaturationthresSlider" >
<property name="orientation" >
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="3" column="0" >
<item row="1" column="0" >
<widget class="QLabel" name="label_13" >
<property name="text" >
<string>_("Saturation")</string>
</property>
</widget>
</item>
<item row="1" column="0" >
<widget class="QLabel" name="label_10" >
<item row="0" column="0" >
<widget class="QLabel" name="label_8" >
<property name="text" >
<string>Green</string>
<string>_("Color")</string>
</property>
</widget>
</item>
<item row="0" column="1" >
<widget class="QLineEdit" name="colorthresColorText" >
<property name="inputMask" >
<string>>HHHHHH;#</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item rowspan="3" row="0" column="0" >
<widget class="QGroupBox" name="adjustEnable" >
<property name="enabled" >
<bool>true</bool>
</property>
<property name="title" >
<string>_("Image adjust")</string>
</property>
<property name="checkable" >
<bool>true</bool>
</property>
<property name="checked" >
<bool>false</bool>
</property>
<layout class="QGridLayout" >
<property name="margin" >
<number>9</number>
</property>
<property name="spacing" >
<number>6</number>
</property>
<item row="0" column="1" >
<widget class="QSlider" name="colorthresRedSlider" >
<widget class="QSlider" name="hueSlider" >
<property name="maximum" >
<number>360</number>
</property>
<property name="orientation" >
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="1" column="1" >
<widget class="QSlider" name="colorthresGreenSlider" >
<item row="4" column="1" >
<widget class="QSlider" name="gammaSlider" >
<property name="maximum" >
<number>500</number>
</property>
<property name="orientation" >
<enum>Qt::Horizontal</enum>
</property>
<property name="tickInterval" >
<number>50</number>
</property>
</widget>
</item>
<item row="2" column="0" >
<widget class="QLabel" name="label_11" >
<property name="text" >
<string>Blue</string>
<item row="3" column="1" >
<widget class="QSlider" name="saturationSlider" >
<property name="maximum" >
<number>300</number>
</property>
<property name="orientation" >
<enum>Qt::Horizontal</enum>
</property>
<property name="tickInterval" >
<number>100</number>
</property>
</widget>
</item>
<item row="2" column="1" >
<widget class="QSlider" name="colorthresBlueSlider" >
<widget class="QSlider" name="brightnessSlider" >
<property name="maximum" >
<number>200</number>
</property>
<property name="orientation" >
<enum>Qt::Horizontal</enum>
</property>
<property name="tickInterval" >
<number>100</number>
</property>
</widget>
</item>
<item row="0" column="0" >
<widget class="QLabel" name="label_12" >
<property name="text" >
<string>Red</string>
<item row="1" column="1" >
<widget class="QSlider" name="contrastSlider" >
<property name="maximum" >
<number>200</number>
</property>
<property name="orientation" >
<enum>Qt::Horizontal</enum>
</property>
<property name="tickInterval" >
<number>100</number>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item rowspan="3" row="9" column="2" colspan="3" >
<widget class="QGroupBox" name="advancedVideoFilterBox" >
<property name="title" >
<string>_("Advanced video filter controls")</string>
</property>
<layout class="QGridLayout" >
<property name="margin" >
<number>9</number>
</property>
<property name="spacing" >
<number>6</number>
</property>
<item row="1" column="1" colspan="2" >
<widget class="QLineEdit" name="videoFilterText" />
</item>
<item row="2" column="1" colspan="2" >
<widget class="QLineEdit" name="subpictureFilterText" />
<item row="4" column="0" >
<widget class="QLabel" name="label_5" >
<property name="text" >
<string>_("Gamma")</string>
</property>
</widget>
</item>
<item row="3" column="0" colspan="2" >
<widget class="QPushButton" name="filtersResetButton" >
<item row="1" column="0" >
<widget class="QLabel" name="label_2" >
<property name="text" >
<string>_("Reset")</string>
<string>_("Contrast")</string>
</property>
</widget>
</item>
<item row="3" column="2" >
<widget class="QPushButton" name="filtersUpdateButton" >
<item row="2" column="0" >
<widget class="QLabel" name="label_3" >
<property name="text" >
<string>_("Update")</string>
<string>_("Brightness")</string>
</property>
</widget>
</item>
<item row="1" column="0" >
<widget class="QLabel" name="label_33" >
<item row="3" column="0" >
<widget class="QLabel" name="label_4" >
<property name="text" >
<string>_("Video filters")</string>
<string>_("Saturation")</string>
</property>
</widget>
</item>
<item row="0" column="0" >
<widget class="QLabel" name="label_32" >
<widget class="QLabel" name="label" >
<property name="text" >
<string>_("Vout filters")</string>
<string>_("Hue")</string>
</property>
</widget>
</item>
<item row="2" column="0" >
<widget class="QLabel" name="label_34" >
<item row="5" column="1" >
<widget class="QCheckBox" name="brightnessThresholdCheck" >
<property name="text" >
<string>_("Subpicture filters")</string>
<string>_("Brightness threshold")</string>
</property>
</widget>
</item>
<item row="0" column="1" colspan="2" >
<widget class="QLineEdit" name="voutFilterText" />
</item>
</layout>
</widget>
</item>
<item rowspan="4" row="5" column="3" >
<widget class="QGroupBox" name="eraseEnable" >
<item row="5" column="1" >
<widget class="QCheckBox" name="noiseEnable" >
<property name="text" >
<string>_("Noise")</string>
</property>
</widget>
</item>
<item rowspan="4" row="1" column="3" >
<widget class="QGroupBox" name="wallEnable" >
<property name="title" >
<string>_("Logo erase")</string>
<string>_("Wall")</string>
</property>
<property name="checkable" >
<bool>true</bool>
......@@ -194,57 +277,47 @@
<property name="spacing" >
<number>6</number>
</property>
<item row="1" column="0" >
<widget class="QLabel" name="label_16" >
<item row="0" column="0" >
<widget class="QLabel" name="label_31" >
<property name="text" >
<string>_("Top")</string>
<string>_("Rows")</string>
</property>
</widget>
</item>
<item row="2" column="0" >
<widget class="QLabel" name="label_17" >
<item row="1" column="0" >
<widget class="QLabel" name="label_30" >
<property name="text" >
<string>_("Left")</string>
<string>_("Columns")</string>
</property>
</widget>
</item>
<item row="2" column="1" >
<widget class="QSpinBox" name="eraseXSpin" />
</item>
<item row="1" column="1" >
<widget class="QSpinBox" name="eraseYSpin" />
<widget class="QSpinBox" name="wallColsSpin" >
<property name="minimum" >
<number>1</number>
</property>
<property name="value" >
<number>3</number>
</property>
</widget>
</item>
<item row="0" column="1" >
<widget class="QLineEdit" name="eraseMaskText" />
</item>
<item row="0" column="0" >
<widget class="QLabel" name="label_15" >
<property name="text" >
<string>_("Mask")</string>
<widget class="QSpinBox" name="wallRowsSpin" >
<property name="minimum" >
<number>1</number>
</property>
<property name="value" >
<number>3</number>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="9" column="1" >
<widget class="QCheckBox" name="rippleEnable" >
<property name="text" >
<string>_("Water effect")</string>
</property>
</widget>
</item>
<item row="10" column="1" >
<widget class="QCheckBox" name="waveEnable" >
<property name="text" >
<string>_("Waves")</string>
</property>
</widget>
</item>
<item rowspan="6" row="2" column="4" >
<widget class="QGroupBox" name="logoEnable" >
<item row="0" column="3" >
<widget class="QGroupBox" name="cloneEnable" >
<property name="title" >
<string>_("Add logo")</string>
<string>_("Clone")</string>
</property>
<property name="checkable" >
<bool>true</bool>
......@@ -259,50 +332,23 @@
<property name="spacing" >
<number>6</number>
</property>
<item row="3" column="0" >
<widget class="QLabel" name="label_22" >
<item row="0" column="0" >
<widget class="QLabel" name="label_9" >
<property name="text" >
<string>_("Transparency")</string>
<string>_("Number of clones")</string>
</property>
</widget>
</item>
<item row="2" column="0" colspan="2" >
<widget class="QLabel" name="label_21" >
<property name="text" >
<string>_("Left")</string>
<item row="0" column="1" >
<widget class="QSpinBox" name="cloneCountSpin" >
<property name="minimum" >
<number>1</number>
</property>
</widget>
</item>
<item row="1" column="0" colspan="2" >
<widget class="QLabel" name="label_20" >
<property name="text" >
<string>_("Top")</string>
</property>
</widget>
</item>
<item row="3" column="1" colspan="2" >
<widget class="QSlider" name="logoTransparencySlider" >
<property name="orientation" >
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="2" column="2" >
<widget class="QSpinBox" name="logoXSpin" />
</item>
<item row="1" column="2" >
<widget class="QSpinBox" name="logoYSpin" />
</item>
<item row="0" column="0" >
<widget class="QLabel" name="label_19" >
<property name="text" >
<string>_("Logo")</string>
<property name="value" >
<number>2</number>
</property>
</widget>
</item>
<item row="0" column="2" >
<widget class="QLineEdit" name="logoFileText" />
</item>
</layout>
</widget>
</item>
......@@ -313,140 +359,6 @@
</property>
</widget>
</item>
<item rowspan="2" row="0" column="4" >
<widget class="QGroupBox" name="marqEnable" >
<property name="title" >
<string>_("Add text")</string>
</property>
<property name="checkable" >
<bool>true</bool>
</property>
<property name="checked" >
<bool>false</bool>
</property>
<layout class="QGridLayout" >
<property name="margin" >
<number>9</number>
</property>
<property name="spacing" >
<number>6</number>
</property>
<item row="1" column="0" >
<widget class="QLabel" name="label_24" >
<property name="text" >
<string>_("Position")</string>
</property>
</widget>
</item>
<item row="0" column="0" >
<widget class="QLabel" name="label_23" >
<property name="text" >
<string>_("Text")</string>
</property>
</widget>
</item>
<item row="0" column="1" >
<widget class="QLineEdit" name="marqMarqueeText" />
</item>
<item row="1" column="1" >
<widget class="QComboBox" name="marqPositionCombo" />
</item>
</layout>
</widget>
</item>
<item row="0" column="3" >
<widget class="QGroupBox" name="cloneEnable" >
<property name="title" >
<string>_("Clone")</string>
</property>
<property name="checkable" >
<bool>true</bool>
</property>
<property name="checked" >
<bool>false</bool>
</property>
<layout class="QGridLayout" >
<property name="margin" >
<number>9</number>
</property>
<property name="spacing" >
<number>6</number>
</property>
<item row="0" column="0" >
<widget class="QLabel" name="label_9" >
<property name="text" >
<string>_("Number of clones")</string>
</property>
</widget>
</item>
<item row="0" column="1" >
<widget class="QSpinBox" name="cloneCountSpin" >
<property name="minimum" >
<number>1</number>
</property>
<property name="value" >
<number>2</number>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item rowspan="4" row="1" column="3" >
<widget class="QGroupBox" name="wallEnable" >
<property name="title" >
<string>_("Wall")</string>
</property>
<property name="checkable" >
<bool>true</bool>
</property>
<property name="checked" >
<bool>false</bool>
</property>
<layout class="QGridLayout" >
<property name="margin" >
<number>9</number>
</property>
<property name="spacing" >
<number>6</number>
</property>
<item row="0" column="0" >
<widget class="QLabel" name="label_31" >
<property name="text" >
<string>_("Rows")</string>
</property>
</widget>
</item>
<item row="1" column="0" >
<widget class="QLabel" name="label_30" >
<property name="text" >
<string>_("Columns")</string>
</property>
</widget>
</item>
<item row="1" column="1" >
<widget class="QSpinBox" name="wallColsSpin" >
<property name="minimum" >
<number>1</number>
</property>
<property name="value" >
<number>3</number>
</property>
</widget>
</item>
<item row="0" column="1" >
<widget class="QSpinBox" name="wallRowsSpin" >
<property name="minimum" >
<number>1</number>
</property>
<property name="value" >
<number>3</number>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item rowspan="3" row="5" column="2" >
<widget class="QGroupBox" name="puzzleEnable" >
<property name="title" >
......@@ -533,10 +445,19 @@
<number>359</number>
</property>
<property name="value" >
<number>45</number>
<number>0</number>
</property>
<property name="sliderPosition" >
<number>0</number>
</property>
<property name="orientation" >
<enum>Qt::Vertical</enum>
<enum>Qt::Horizontal</enum>
</property>
<property name="invertedAppearance" >
<bool>false</bool>
</property>
<property name="invertedControls" >
<bool>false</bool>
</property>
</widget>
</item>
......@@ -574,10 +495,24 @@
</layout>
</widget>
</item>
<item rowspan="2" row="0" column="1" >
<widget class="QGroupBox" name="gradientEnable" >
<item row="10" column="1" >
<widget class="QCheckBox" name="waveEnable" >
<property name="text" >
<string>_("Waves")</string>
</property>
</widget>
</item>