dev
Oona Räisänen 2016-01-28 22:55:43 +02:00
rodzic 2afb6d0ce8
commit 0d7fffd73d
3 zmienionych plików z 357 dodań i 416 usunięć

Wyświetl plik

@ -27,17 +27,20 @@ GUI::GUI() : m_is_aborted_by_user(false), m_dispatcher_redraw(), m_dispatcher_re
builder->get_widget("window_main", m_window_main);
builder->get_widget("image_rx", m_image_rx);
builder->get_widget("image_sync", m_image_sync);
builder->get_widget("button_abort", m_button_abort);
/*builder->get_widget("button_abort", m_button_abort);
builder->get_widget("button_clear", m_button_clear);
builder->get_widget("button_manualstart", m_button_manualstart);
builder->get_widget("combo_manualmode", m_combo_manualmode);
builder->get_widget("combo_manualmode", m_combo_manualmode);*/
builder->get_widget("combo_portaudio", m_combo_portaudio);
builder->get_widget("switch_rx", m_switch_rx);
builder->get_widget("switch_sync", m_switch_sync);
builder->get_widget("switch_denoise", m_switch_denoise);
builder->get_widget("switch_fskid", m_switch_fskid);
builder->get_widget("radio_denoise0", m_radio_denoise[0]);
builder->get_widget("radio_denoise1", m_radio_denoise[1]);
builder->get_widget("radio_denoise2", m_radio_denoise[2]);
builder->get_widget("check_save", m_check_save);
builder->get_widget("radio_input_portaudio", m_radio_input_portaudio);
@ -50,6 +53,8 @@ GUI::GUI() : m_is_aborted_by_user(false), m_dispatcher_redraw(), m_dispatcher_re
builder->get_widget("box_input", m_box_input);
//builder->get_widget("drawingarea1", m_drawing_area);
imageReset();
/*if (config.get_string("slowrx","rxdir") != NULL) {
@ -65,21 +70,23 @@ GUI::GUI() : m_is_aborted_by_user(false), m_dispatcher_redraw(), m_dispatcher_re
void GUI::start() {
m_switch_denoise->signal_state_flags_changed().connect(
sigc::mem_fun(this, &GUI::autoSettingsChanged)
);
for (int i=0; i<3; i++) {
m_radio_denoise[i]->signal_state_flags_changed().connect(
sigc::mem_fun(this, &GUI::autoSettingsChanged)
);
}
m_switch_rx->signal_state_flags_changed().connect(
sigc::mem_fun(this, &GUI::autoSettingsChanged)
);
m_switch_rx->signal_state_flags_changed().connect(
sigc::mem_fun(this, &GUI::autoSettingsChanged)
);
m_button_abort->signal_clicked().connect(
/*m_button_abort->signal_clicked().connect(
sigc::mem_fun(this, &GUI::abortedByUser)
);
m_button_clear->signal_clicked().connect(
sigc::mem_fun(this, &GUI::imageReset)
);
);*/
m_dispatcher_redraw.connect(sigc::mem_fun(*this, &GUI::onRedrawNotify));
m_dispatcher_resync.connect(sigc::mem_fun(*this, &GUI::onResyncNotify));
@ -199,19 +206,19 @@ void setVU (double *Power, int FFTLen, int WinIdx, bool ShowWin) {
}
#endif
bool GUI::isRxEnabled() {
bool GUI::isRxEnabled() const {
return m_is_rx_enabled;
}
bool GUI::isDenoiseEnabled() {
return m_is_denoise_enabled;
int GUI::getDenoiseLevel() const {
return m_denoise_level;
}
bool GUI::isSyncEnabled() {
bool GUI::isSyncEnabled() const {
return m_is_sync_enabled;
}
bool GUI::isAbortedByUser() {
bool GUI::isAbortedByUser() const {
return m_is_aborted_by_user;
}
bool GUI::isSaveEnabled() {
bool GUI::isSaveEnabled() const {
return m_check_save->get_active();
}
@ -223,15 +230,21 @@ void GUI::receiving() {
m_box_input->set_sensitive(false);*/
}
void GUI::notReceiving() {
m_button_abort->set_sensitive(false);
m_button_clear->set_sensitive(true);
m_button_manualstart->set_sensitive(true);
m_combo_manualmode->set_sensitive(true);
//m_button_abort->set_sensitive(false);
//m_button_clear->set_sensitive(true);
//m_button_manualstart->set_sensitive(true);
//m_combo_manualmode->set_sensitive(true);
m_box_input->set_sensitive(true);
}
void GUI::fetchAutoState() {
m_is_denoise_enabled = m_switch_denoise->get_active();
m_denoise_level = 0;
for (int i=0; i<3; i++) {
if (m_radio_denoise[i]->get_active()) {
m_denoise_level = i;
break;
}
}
m_is_rx_enabled = m_switch_rx->get_active();
m_is_sync_enabled = m_switch_sync->get_active();
m_is_fskid_enabled = m_switch_sync->get_active();
@ -304,24 +317,28 @@ void GUI::audioFileSelected() {
}
void GUI::redrawNotify() {
//printf("redrawNotify(), emit()\n");
m_dispatcher_redraw.emit();
}
void GUI::onRedrawNotify() {
printf("redrawNotidy(), getCurrentPic():\n");
//printf("onRedrawNotify(), getCurrentPic():\n");
std::shared_ptr<Picture> pic = m_listener.getCurrentPic();
printf(" lasttime->set_text\n");
m_label_lasttime->set_text(pic->getTimestamp() + " / " + getModeSpec(pic->getMode()).name + " ");
printf(" renderPixbuf()\n");
//printf(" lasttime->set_text\n");
m_label_lasttime->set_text(pic->getTimestamp() + " / " + pic->getMode().name + " ");
//printf(" renderPixbuf()\n");
m_image_rx->set(pic->renderPixbuf(640));
}
void GUI::resyncNotify() {
//printf("resyncNotify(), emit()\n");
m_dispatcher_resync.emit();
}
void GUI::onResyncNotify() {
if (m_switch_sync->get_active()) {
//printf("onResyncNotify()\n");
//if (m_switch_sync->get_active()) {
std::shared_ptr<Picture> pic = m_listener.getCurrentPic();
pic->resync();
}
//m_image_sync->set(pic->renderSync(256));
//}
}

Wyświetl plik

@ -20,11 +20,11 @@ class GUI {
void receiving();
void notReceiving();
bool isRxEnabled();
bool isDenoiseEnabled();
bool isSyncEnabled();
bool isAbortedByUser();
bool isSaveEnabled();
bool isRxEnabled() const;
int getDenoiseLevel() const;
bool isSyncEnabled() const;
bool isAbortedByUser() const;
bool isSaveEnabled() const;
void redrawNotify();
void onRedrawNotify();
@ -47,7 +47,7 @@ class GUI {
bool m_is_rx_enabled;
bool m_is_sync_enabled;
bool m_is_fskid_enabled;
bool m_is_denoise_enabled;
bool m_denoise_level;
bool m_is_aborted_by_user;
Glib::RefPtr<Gtk::Application> m_app;
@ -59,7 +59,6 @@ class GUI {
Gtk::Image *m_image_sync;
Gtk::ToggleButton *m_switch_rx;
Gtk::ToggleButton *m_switch_sync;
Gtk::ToggleButton *m_switch_denoise;
Gtk::ToggleButton *m_switch_fskid;
Gtk::CheckButton *m_check_save;
Gtk::Button *m_button_abort;
@ -70,9 +69,11 @@ class GUI {
Gtk::RadioButton *m_radio_input_portaudio;
Gtk::RadioButton *m_radio_input_file;
Gtk::RadioButton *m_radio_input_stdin;
Gtk::RadioButton *m_radio_denoise[3];
Gtk::FileChooserButton *m_button_audiofilechooser;
Gtk::FileChooserButton *m_button_savedirchooser;
Gtk::Box *m_box_input;
Gtk::DrawingArea *m_drawing_area;
Glib::Dispatcher m_dispatcher_redraw;
Glib::Dispatcher m_dispatcher_resync;

Wyświetl plik

@ -154,370 +154,329 @@
</packing>
</child>
<child>
<object class="GtkNotebook" id="notebook2">
<object class="GtkAlignment" id="alignment4">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="tab_pos">left</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="top_padding">7</property>
<property name="bottom_padding">7</property>
<property name="left_padding">7</property>
<property name="right_padding">7</property>
<child>
<object class="GtkAlignment" id="alignment4">
<object class="GtkBox" id="box7">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="top_padding">3</property>
<property name="bottom_padding">3</property>
<property name="left_padding">5</property>
<property name="right_padding">6</property>
<property name="halign">start</property>
<property name="valign">start</property>
<property name="orientation">vertical</property>
<property name="spacing">15</property>
<child>
<object class="GtkBox" id="box7">
<object class="GtkFrame" id="frame1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="valign">start</property>
<property name="orientation">vertical</property>
<property name="spacing">10</property>
<property name="label_xalign">0</property>
<property name="shadow_type">none</property>
<child>
<object class="GtkFrame" id="frame_rxcontrol">
<object class="GtkAlignment" id="alignment1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="valign">start</property>
<property name="margin_left">4</property>
<property name="margin_right">4</property>
<property name="margin_top">4</property>
<property name="margin_bottom">4</property>
<property name="label_xalign">0</property>
<property name="shadow_type">in</property>
<property name="top_padding">5</property>
<property name="left_padding">12</property>
<child>
<object class="GtkAlignment" id="alignment6">
<object class="GtkBox" id="box1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="top_padding">10</property>
<property name="bottom_padding">10</property>
<property name="left_padding">10</property>
<property name="right_padding">10</property>
<property name="hexpand">True</property>
<property name="homogeneous">True</property>
<child>
<object class="GtkGrid" id="OptsGrid">
<object class="GtkToggleButton" id="switch_rx">
<property name="label" translatable="yes">VIS</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="row_spacing">5</property>
<property name="column_spacing">5</property>
<property name="column_homogeneous">True</property>
<child>
<object class="GtkToggleButton" id="switch_rx">
<property name="label" translatable="yes">Start</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="active">True</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkToggleButton" id="switch_sync">
<property name="label" translatable="yes">Sync</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="active">True</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkToggleButton" id="switch_denoise">
<property name="label" translatable="yes">Denoise</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
<object class="GtkToggleButton" id="switch_fskid">
<property name="label" translatable="yes">FSK ID</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">1</property>
</packing>
</child>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="hexpand">True</property>
<property name="active">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkToggleButton" id="switch_sync">
<property name="label" translatable="yes">Sync</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="hexpand">True</property>
<property name="active">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
<child type="label">
<object class="GtkLabel" id="label7">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Auto</property>
<property name="use_markup">True</property>
</object>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="frame_slant">
<child type="label">
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="valign">start</property>
<property name="label_xalign">0</property>
<property name="shadow_type">in</property>
<child>
<object class="GtkAlignment" id="alignment13">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="top_padding">10</property>
<property name="bottom_padding">10</property>
<property name="left_padding">10</property>
<property name="right_padding">10</property>
<child>
<object class="GtkBox" id="box8">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">7</property>
<child>
<object class="GtkButton" id="button_abort">
<property name="label" translatable="yes">Abort</property>
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="has_tooltip">True</property>
<property name="tooltip_markup" translatable="yes">Stop video decoding [Esc]</property>
<property name="tooltip_text" translatable="yes">Stop video decoding [Esc]</property>
<accelerator key="Escape" signal="clicked"/>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="button_clear">
<property name="label" translatable="yes">Clear</property>
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkSeparator" id="separator3">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">4</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box_manualstart">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkButton" id="button_manualstart">
<property name="label" translatable="yes">Start</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="has_tooltip">True</property>
<property name="tooltip_markup" translatable="yes">Start receiving immediately [Space]</property>
<property name="tooltip_text" translatable="yes">Start receiving immediately [Space]</property>
<accelerator key="space" signal="clicked"/>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="combo_manualmode">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="has_tooltip">True</property>
<property name="tooltip_markup" translatable="yes">SSTV mode used when started manually</property>
<property name="tooltip_text" translatable="yes">SSTV mode used when started manually</property>
<property name="active">0</property>
<items>
<item translatable="yes">Martin M1</item>
<item translatable="yes">Martin M2</item>
<item translatable="yes">Martin M3</item>
<item translatable="yes">Martin M4</item>
<item translatable="yes">Scottie S1</item>
<item translatable="yes">Scottie S2</item>
<item translatable="yes">Scottie DX</item>
<item translatable="yes">Robot 72</item>
<item translatable="yes">Robot 36</item>
<item translatable="yes">Robot 24</item>
<item translatable="yes">Robot 24 B/W</item>
<item translatable="yes">Robot 12 B/W</item>
<item translatable="yes">Robot 8 B/W</item>
<item translatable="yes">PD-50</item>
<item translatable="yes">PD-90</item>
<item translatable="yes">PD-120</item>
<item translatable="yes">PD-160</item>
<item translatable="yes">PD-180</item>
<item translatable="yes">PD-240</item>
<item translatable="yes">PD-290</item>
<item translatable="yes">Pasokon P3</item>
<item translatable="yes">Pasokon P5</item>
<item translatable="yes">Pasokon P7</item>
<item translatable="yes">Wraase SC-2 120</item>
<item translatable="yes">Wraase SC-2 180</item>
</items>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
<child>
<object class="GtkSeparator" id="separator1">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">4</property>
<property name="position">4</property>
</packing>
</child>
<child>
<object class="GtkGrid" id="grid2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="baseline_row">2</property>
<child>
<object class="GtkScale" id="scale1">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="round_digits">1</property>
<property name="draw_value">False</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkScale" id="scale2">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="round_digits">1</property>
<property name="draw_value">False</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label10">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Slant</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label11">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Shift</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">5</property>
</packing>
</child>
</object>
</child>
</object>
</child>
<child type="label">
<object class="GtkLabel" id="label3">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Manual</property>
<property name="use_markup">True</property>
</object>
</child>
<property name="label" translatable="yes">Start on</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="frame2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label_xalign">0</property>
<property name="shadow_type">none</property>
<child>
<object class="GtkAlignment" id="alignment3">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="top_padding">5</property>
<property name="left_padding">12</property>
<child>
<object class="GtkBox" id="box4">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="homogeneous">True</property>
<child>
<object class="GtkRadioButton" id="radio_denoise0">
<property name="label" translatable="yes">OFF</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="xalign">0</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="radio_denoise1">
<property name="label" translatable="yes">Slight</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="xalign">0</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
<property name="group">radio_denoise0</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="radio_denoise2">
<property name="label" translatable="yes">Full</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="xalign">0</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
<property name="group">radio_denoise0</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
</child>
</object>
</child>
<child type="label">
<object class="GtkLabel" id="label2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Denoise</property>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="frame3">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label_xalign">0</property>
<property name="shadow_type">none</property>
<child>
<object class="GtkAlignment" id="alignment5">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="top_padding">5</property>
<property name="left_padding">12</property>
<child>
<object class="GtkBox" id="box5">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="homogeneous">True</property>
<child>
<object class="GtkRadioButton" id="radiobutton1">
<property name="label" translatable="yes">PA</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="xalign">0</property>
<property name="active">True</property>
<property name="draw_indicator">False</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="radiobutton2">
<property name="label" translatable="yes">File</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="xalign">0</property>
<property name="active">True</property>
<property name="draw_indicator">False</property>
<property name="group">radiobutton1</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="radiobutton3">
<property name="label" translatable="yes">stdin</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="xalign">0</property>
<property name="active">True</property>
<property name="draw_indicator">False</property>
<property name="group">radiobutton1</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
</child>
</object>
</child>
<child type="label">
<object class="GtkLabel" id="label3">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Input</property>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkGrid" id="OptsGrid">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="row_spacing">5</property>
<property name="column_spacing">5</property>
<property name="column_homogeneous">True</property>
<child>
<object class="GtkToggleButton" id="switch_afc">
<property name="label" translatable="yes">AFC</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkToggleButton" id="switch_fskid">
<property name="label" translatable="yes">FSK ID</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">0</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">5</property>
<property name="position">3</property>
</packing>
</child>
<child>
<object class="GtkButton" id="button_abort">
<property name="label" translatable="yes">STOP</property>
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="has_tooltip">True</property>
<property name="tooltip_markup" translatable="yes">Stop video decoding [Esc]</property>
<property name="tooltip_text" translatable="yes">Stop video decoding [Esc]</property>
<accelerator key="Escape" signal="clicked"/>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">4</property>
</packing>
</child>
<child>
<object class="GtkImage" id="image_fft">
<property name="width_request">256</property>
<property name="height_request">128</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="stock">gtk-missing-image</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">5</property>
</packing>
</child>
</object>
</child>
<child type="tab">
<object class="GtkLabel" id="label2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Rx</property>
</object>
<packing>
<property name="tab_fill">False</property>
</packing>
</child>
<child>
<object class="GtkAlignment" id="alignment3">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="left_padding">5</property>
<property name="right_padding">5</property>
<child>
<object class="GtkBox" id="box_input">
<property name="visible">True</property>
@ -617,35 +576,16 @@
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">6</property>
</packing>
</child>
</object>
<packing>
<property name="position">1</property>
</packing>
</child>
<child type="tab">
<object class="GtkLabel" id="label9">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Input</property>
</object>
<packing>
<property name="position">1</property>
<property name="tab_fill">False</property>
</packing>
</child>
<child>
<object class="GtkAlignment" id="alignment5">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="left_padding">12</property>
<property name="right_padding">5</property>
<child>
<object class="GtkBox" id="box3">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_left">9</property>
<property name="margin_right">9</property>
<property name="margin_top">9</property>
<property name="margin_bottom">9</property>
<property name="orientation">vertical</property>
@ -677,22 +617,13 @@
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">7</property>
</packing>
</child>
</object>
<packing>
<property name="position">2</property>
</packing>
</child>
<child type="tab">
<object class="GtkLabel" id="label12">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Output</property>
</object>
<packing>
<property name="position">2</property>
<property name="tab_fill">False</property>
</packing>
</child>
</object>
<packing>
@ -702,15 +633,7 @@
</packing>
</child>
<child>
<object class="GtkImage" id="image_sync">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="stock">gtk-missing-image</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">1</property>
</packing>
<placeholder/>
</child>
</object>
</child>