<?xml version="1.0" encoding="UTF-8"?>
<interface domain="easyeffects">
    <template class="PipeManagerBox" parent="GtkBox">
        <property name="spacing">6</property>
        <property name="hexpand">1</property>
        <property name="vexpand">1</property>
        <child>
            <object class="GtkStackSidebar">
                <property name="stack">stack</property>
            </object>
        </child>

        <child>
            <object class="GtkStack" id="stack">
                <property name="hexpand">1</property>
                <property name="vexpand">1</property>
                <property name="transition-duration">250</property>
                <property name="transition-type">slide-up-down</property>
                <property name="margin-start">6</property>
                <property name="margin-end">6</property>
                <property name="margin-top">6</property>
                <property name="margin-bottom">6</property>
                <signal name="notify::visible-child" handler="on_stack_visible_child_changed" object="PipeManagerBox" />
                <child>
                    <object class="GtkStackPage">
                        <property name="name">page_general</property>
                        <property name="title" translatable="yes">General</property>
                        <property name="child">
                            <object class="GtkScrolledWindow">
                                <child>
                                    <object class="AdwPreferencesPage">
                                        <child>
                                            <object class="AdwPreferencesGroup">
                                                <property name="title" translatable="yes">Device Management</property>
                                                <property name="description" translatable="yes">It's recommended to NOT set Easy Effects Sink/Source as Default Device in external applications (e.g. Gnome Settings and Plasma System Settings).</property>
                                                <child>
                                                    <object class="AdwActionRow">
                                                        <property name="title" translatable="yes">Use Default Input</property>
                                                        <property name="activatable-widget">use_default_input</property>
                                                        <child>
                                                            <object class="GtkSwitch" id="use_default_input">
                                                                <property name="valign">center</property>
                                                                <accessibility>
                                                                    <property name="label" translatable="yes">Use Default Input</property>
                                                                </accessibility>
                                                            </object>
                                                        </child>
                                                    </object>
                                                </child>

                                                <child>
                                                    <object class="AdwActionRow">
                                                        <property name="title" translatable="yes">Name</property>
                                                        <property name="title-lines">1</property>
                                                        <child>
                                                            <object class="GtkDropDown" id="dropdown_input_devices">
                                                                <property name="valign">center</property>
                                                                <property name="sensitive" bind-source="use_default_input" bind-property="active" bind-flags="sync-create|invert-boolean" />
                                                                <property name="factory">
                                                                    <object class="GtkBuilderListItemFactory">
                                                                        <property name="resource">/com/github/wwmm/easyeffects/ui/factory_input_device_dropdown.ui</property>
                                                                    </object>
                                                                </property>
                                                                <accessibility>
                                                                    <property name="label" translatable="yes">Custom Input Device</property>
                                                                </accessibility>
                                                            </object>
                                                        </child>
                                                    </object>
                                                </child>

                                                <child>
                                                    <object class="AdwActionRow">
                                                        <property name="title" translatable="yes">Use Default Output</property>
                                                        <property name="activatable-widget">use_default_output</property>
                                                        <child>
                                                            <object class="GtkSwitch" id="use_default_output">
                                                                <property name="valign">center</property>
                                                                <accessibility>
                                                                    <property name="label" translatable="yes">Use Default Output</property>
                                                                </accessibility>
                                                            </object>
                                                        </child>
                                                    </object>
                                                </child>

                                                <child>
                                                    <object class="AdwActionRow">
                                                        <property name="title" translatable="yes">Name</property>
                                                        <property name="title-lines">1</property>
                                                        <child>
                                                            <object class="GtkDropDown" id="dropdown_output_devices">
                                                                <property name="valign">center</property>
                                                                <property name="sensitive" bind-source="use_default_output" bind-property="active" bind-flags="sync-create|invert-boolean" />
                                                                <property name="factory">
                                                                    <object class="GtkBuilderListItemFactory">
                                                                        <property name="resource">/com/github/wwmm/easyeffects/ui/factory_output_device_dropdown.ui</property>
                                                                    </object>
                                                                </property>
                                                                <accessibility>
                                                                    <property name="label" translatable="yes">Custom Output Device</property>
                                                                </accessibility>
                                                            </object>
                                                        </child>
                                                    </object>
                                                </child>
                                            </object>
                                        </child>

                                        <child>
                                            <object class="AdwPreferencesGroup">
                                                <property name="title" translatable="yes">Server Information</property>

                                                <child>
                                                    <object class="AdwActionRow">
                                                        <property name="title" translatable="yes">Header Version</property>
                                                        <child>
                                                            <object class="GtkLabel" id="header_version">
                                                                <property name="valign">center</property>
                                                            </object>
                                                        </child>
                                                    </object>
                                                </child>

                                                <child>
                                                    <object class="AdwActionRow">
                                                        <property name="title" translatable="yes">Library Version</property>
                                                        <child>
                                                            <object class="GtkLabel" id="library_version">
                                                                <property name="valign">center</property>
                                                            </object>
                                                        </child>
                                                    </object>
                                                </child>

                                                <child>
                                                    <object class="AdwActionRow">
                                                        <property name="title" translatable="yes">Sampling Rate</property>
                                                        <child>
                                                            <object class="GtkLabel" id="server_rate">
                                                                <property name="valign">center</property>
                                                            </object>
                                                        </child>
                                                    </object>
                                                </child>

                                                <child>
                                                    <object class="AdwActionRow">
                                                        <property name="title" translatable="yes">Minimum Quantum</property>
                                                        <child>
                                                            <object class="GtkLabel" id="min_quantum">
                                                                <property name="valign">center</property>
                                                            </object>
                                                        </child>
                                                    </object>
                                                </child>

                                                <child>
                                                    <object class="AdwActionRow">
                                                        <property name="title" translatable="yes">Maximum Quantum</property>
                                                        <child>
                                                            <object class="GtkLabel" id="max_quantum">
                                                                <property name="valign">center</property>
                                                            </object>
                                                        </child>
                                                    </object>
                                                </child>

                                                <child>
                                                    <object class="AdwActionRow">
                                                        <property name="title" translatable="yes">Default Quantum</property>
                                                        <child>
                                                            <object class="GtkLabel" id="quantum">
                                                                <property name="valign">center</property>
                                                            </object>
                                                        </child>
                                                    </object>
                                                </child>
                                            </object>
                                        </child>
                                    </object>
                                </child>
                            </object>
                        </property>
                    </object>
                </child>

                <child>
                    <object class="GtkStackPage">
                        <property name="name">page_presets_autoloading</property>
                        <property name="title" translatable="yes">Presets Autoloading</property>
                        <property name="child">
                            <object class="GtkBox">
                                <property name="spacing">12</property>
                                <property name="orientation">vertical</property>
                                <child>
                                    <object class="GtkStack" id="stack_presets_autoloading">
                                        <property name="hexpand">1</property>
                                        <property name="vexpand">1</property>
                                        <property name="transition-duration">250</property>
                                        <property name="transition-type">slide-left-right</property>
                                        <property name="margin-start">6</property>
                                        <property name="margin-end">6</property>
                                        <property name="margin-top">6</property>
                                        <property name="margin-bottom">6</property>
                                        <child>
                                            <object class="GtkStackPage">
                                                <property name="name">page_output</property>
                                                <property name="title" translatable="yes">Output</property>
                                                <property name="child">
                                                    <object class="GtkBox">
                                                        <property name="spacing">6</property>
                                                        <property name="orientation">vertical</property>
                                                        <child>
                                                            <object class="GtkGrid">
                                                                <property name="halign">center</property>
                                                                <property name="valign">start</property>
                                                                <property name="row-spacing">12</property>
                                                                <property name="column-spacing">6</property>
                                                                <child>
                                                                    <object class="GtkDropDown" id="dropdown_autoloading_output_devices">
                                                                        <property name="factory">
                                                                            <object class="GtkBuilderListItemFactory">
                                                                                <property name="resource">/com/github/wwmm/easyeffects/ui/factory_output_device_dropdown.ui</property>
                                                                            </object>
                                                                        </property>
                                                                        <layout>
                                                                            <property name="column">0</property>
                                                                            <property name="row">0</property>
                                                                        </layout>
                                                                        <accessibility>
                                                                            <property name="label" translatable="yes">Output Devices</property>
                                                                        </accessibility>
                                                                    </object>
                                                                </child>

                                                                <child>
                                                                    <object class="GtkDropDown" id="dropdown_autoloading_output_presets">
                                                                        <property name="factory">
                                                                            <object class="GtkBuilderListItemFactory">
                                                                                <property name="resource">/com/github/wwmm/easyeffects/ui/factory_presets_dropdown.ui</property>
                                                                            </object>
                                                                        </property>
                                                                        <layout>
                                                                            <property name="column">0</property>
                                                                            <property name="row">1</property>
                                                                        </layout>
                                                                        <accessibility>
                                                                            <property name="label" translatable="yes">Output Presets</property>
                                                                        </accessibility>
                                                                    </object>
                                                                </child>

                                                                <child>
                                                                    <object class="GtkButton" id="autoloading_add_output_profile">
                                                                        <property name="tooltip-text" translatable="yes">Create Association</property>
                                                                        <property name="halign">center</property>
                                                                        <property name="valign">center</property>
                                                                        <property name="icon-name">list-add-symbolic</property>
                                                                        <signal name="clicked" handler="on_autoloading_add_output_profile" object="PipeManagerBox" />
                                                                        <layout>
                                                                            <property name="column">1</property>
                                                                            <property name="row">0</property>
                                                                            <property name="row-span">2</property>
                                                                        </layout>
                                                                        <style>
                                                                            <class name="suggested-action" />
                                                                        </style>
                                                                        <accessibility>
                                                                            <property name="label" translatable="yes">Add Autoloading Output Preset</property>
                                                                        </accessibility>
                                                                    </object>
                                                                </child>
                                                            </object>
                                                        </child>

                                                        <child>
                                                            <object class="GtkFrame">
                                                                <child>
                                                                    <object class="GtkScrolledWindow">
                                                                        <child>
                                                                            <object class="GtkListView" id="listview_autoloading_output">
                                                                                <property name="vexpand">1</property>
                                                                                <property name="hexpand">1</property>
                                                                                <property name="show-separators">1</property>
                                                                                <style>
                                                                                    <class name="rich-list" />
                                                                                </style>
                                                                                <accessibility>
                                                                                    <property name="label" translatable="yes">Output Autoloading Presets List</property>
                                                                                </accessibility>
                                                                            </object>
                                                                        </child>
                                                                    </object>
                                                                </child>
                                                            </object>
                                                        </child>
                                                    </object>
                                                </property>
                                            </object>
                                        </child>

                                        <child>
                                            <object class="GtkStackPage">
                                                <property name="name">page_input</property>
                                                <property name="title" translatable="yes">Input</property>
                                                <property name="child">
                                                    <object class="GtkBox">
                                                        <property name="spacing">6</property>
                                                        <property name="orientation">vertical</property>
                                                        <child>
                                                            <object class="GtkGrid">
                                                                <property name="halign">center</property>
                                                                <property name="valign">start</property>
                                                                <property name="row-spacing">12</property>
                                                                <property name="column-spacing">6</property>
                                                                <child>
                                                                    <object class="GtkDropDown" id="dropdown_autoloading_input_devices">
                                                                        <property name="factory">
                                                                            <object class="GtkBuilderListItemFactory">
                                                                                <property name="resource">/com/github/wwmm/easyeffects/ui/factory_input_device_dropdown.ui</property>
                                                                            </object>
                                                                        </property>
                                                                        <layout>
                                                                            <property name="column">0</property>
                                                                            <property name="row">0</property>
                                                                        </layout>
                                                                        <accessibility>
                                                                            <property name="label" translatable="yes">Input Devices</property>
                                                                        </accessibility>
                                                                    </object>
                                                                </child>

                                                                <child>
                                                                    <object class="GtkDropDown" id="dropdown_autoloading_input_presets">
                                                                        <layout>
                                                                            <property name="column">0</property>
                                                                            <property name="row">1</property>
                                                                        </layout>
                                                                        <accessibility>
                                                                            <property name="label" translatable="yes">Input Presets</property>
                                                                        </accessibility>
                                                                    </object>
                                                                </child>

                                                                <child>
                                                                    <object class="GtkButton" id="autoloading_add_input_profile">
                                                                        <property name="tooltip-text" translatable="yes">Create Association</property>
                                                                        <property name="halign">center</property>
                                                                        <property name="valign">center</property>
                                                                        <property name="icon-name">list-add-symbolic</property>
                                                                        <signal name="clicked" handler="on_autoloading_add_input_profile" object="PipeManagerBox" />
                                                                        <layout>
                                                                            <property name="column">1</property>
                                                                            <property name="row">0</property>
                                                                            <property name="row-span">2</property>
                                                                        </layout>
                                                                        <style>
                                                                            <class name="suggested-action" />
                                                                        </style>
                                                                        <accessibility>
                                                                            <property name="label" translatable="yes">Add Autoloading Input Preset</property>
                                                                        </accessibility>
                                                                    </object>
                                                                </child>
                                                            </object>
                                                        </child>

                                                        <child>
                                                            <object class="GtkFrame">
                                                                <child>
                                                                    <object class="GtkScrolledWindow">
                                                                        <child>
                                                                            <object class="GtkListView" id="listview_autoloading_input">
                                                                                <property name="vexpand">1</property>
                                                                                <property name="show-separators">1</property>
                                                                                <style>
                                                                                    <class name="rich-list" />
                                                                                </style>
                                                                                <accessibility>
                                                                                    <property name="label" translatable="yes">Input Autoloading Presets List</property>
                                                                                </accessibility>
                                                                            </object>
                                                                        </child>
                                                                    </object>
                                                                </child>
                                                            </object>
                                                        </child>
                                                    </object>
                                                </property>
                                            </object>
                                        </child>
                                    </object>
                                </child>

                                <child>
                                    <object class="GtkStackSwitcher">
                                        <property name="halign">center</property>
                                        <property name="valign">end</property>
                                        <property name="stack">stack_presets_autoloading</property>
                                    </object>
                                </child>
                            </object>
                        </property>
                    </object>
                </child>

                <child>
                    <object class="GtkStackPage">
                        <property name="name">page_modules</property>
                        <property name="title" translatable="yes">Modules</property>
                        <property name="child">
                            <object class="GtkFrame">
                                <child>
                                    <object class="GtkScrolledWindow">
                                        <child>
                                            <object class="GtkListView" id="listview_modules">
                                                <property name="vexpand">1</property>
                                                <property name="show-separators">1</property>
                                                <property name="factory">
                                                    <object class="GtkBuilderListItemFactory">
                                                        <property name="resource">/com/github/wwmm/easyeffects/ui/factory_modules_listview.ui</property>
                                                    </object>
                                                </property>
                                                <style>
                                                    <class name="rich-list" />
                                                </style>
                                                <accessibility>
                                                    <property name="label" translatable="yes">Modules List</property>
                                                </accessibility>
                                            </object>
                                        </child>
                                    </object>
                                </child>
                            </object>
                        </property>
                    </object>
                </child>

                <child>
                    <object class="GtkStackPage">
                        <property name="name">page_clients</property>
                        <property name="title" translatable="yes">Clients</property>
                        <property name="child">
                            <object class="GtkFrame">
                                <child>
                                    <object class="GtkScrolledWindow">
                                        <child>
                                            <object class="GtkListView" id="listview_clients">
                                                <property name="vexpand">1</property>
                                                <property name="show-separators">1</property>
                                                <property name="factory">
                                                    <object class="GtkBuilderListItemFactory">
                                                        <property name="resource">/com/github/wwmm/easyeffects/ui/factory_clients_listview.ui</property>
                                                    </object>
                                                </property>
                                                <style>
                                                    <class name="rich-list" />
                                                </style>
                                                <accessibility>
                                                    <property name="label" translatable="yes">Clients List</property>
                                                </accessibility>
                                            </object>
                                        </child>
                                    </object>
                                </child>
                            </object>
                        </property>
                    </object>
                </child>

                <child>
                    <object class="GtkStackPage">
                        <property name="name">page_test_signals</property>
                        <property name="title" translatable="yes">Test Signal</property>
                        <property name="child">
                            <object class="AdwPreferencesPage">
                                <child>
                                    <object class="AdwPreferencesGroup">
                                        <property name="title" translatable="yes">State</property>
                                        <child>
                                            <object class="AdwActionRow">
                                                <property name="title" translatable="yes">Enabled</property>

                                                <child>
                                                    <object class="GtkSwitch" id="enable_test_signal">
                                                        <property name="valign">center</property>
                                                        <signal name="state-set" handler="on_enable_test_signal" object="PipeManagerBox" />
                                                    </object>
                                                </child>
                                            </object>
                                        </child>
                                    </object>
                                </child>

                                <child>
                                    <object class="AdwPreferencesGroup">
                                        <property name="title" translatable="yes">Properties</property>
                                        <child>
                                            <object class="AdwActionRow">
                                                <property name="title" translatable="yes">Channels</property>
                                                <child>
                                                    <object class="GtkCheckButton" id="checkbutton_channel_left">
                                                        <property name="label" translatable="yes">Left</property>
                                                        <signal name="toggled" handler="on_checkbutton_channel_left" object="PipeManagerBox" />
                                                        <accessibility>
                                                            <property name="label" translatable="yes">Left Channel</property>
                                                        </accessibility>
                                                    </object>
                                                </child>

                                                <child>
                                                    <object class="GtkCheckButton" id="checkbutton_channel_right">
                                                        <property name="group">checkbutton_channel_left</property>
                                                        <property name="label" translatable="yes">Right</property>
                                                        <signal name="toggled" handler="on_checkbutton_channel_right" object="PipeManagerBox" />
                                                        <accessibility>
                                                            <property name="label" translatable="yes">Right Channel</property>
                                                        </accessibility>
                                                    </object>
                                                </child>

                                                <child>
                                                    <object class="GtkCheckButton" id="checkbutton_channel_both">
                                                        <property name="group">checkbutton_channel_left</property>
                                                        <property name="label" translatable="yes">Both</property>
                                                        <property name="active">1</property>
                                                        <signal name="toggled" handler="on_checkbutton_channel_both" object="PipeManagerBox" />
                                                        <accessibility>
                                                            <property name="label" translatable="yes">Both Channels</property>
                                                        </accessibility>
                                                    </object>
                                                </child>
                                            </object>
                                        </child>

                                        <child>
                                            <object class="AdwActionRow">
                                                <property name="title" translatable="yes">Waveform</property>

                                                <child>
                                                    <object class="GtkCheckButton" id="checkbutton_signal_sine">
                                                        <property name="label" translatable="yes">Sine Wave</property>
                                                        <property name="active">1</property>
                                                        <signal name="toggled" handler="on_checkbutton_signal_sine" object="PipeManagerBox" />
                                                    </object>
                                                </child>

                                                <child>
                                                    <object class="GtkCheckButton" id="checkbutton_signal_gaussian">
                                                        <property name="group">checkbutton_signal_sine</property>
                                                        <property name="label" translatable="yes">White Noise</property>
                                                        <signal name="toggled" handler="on_checkbutton_signal_gaussian" object="PipeManagerBox" />
                                                    </object>
                                                </child>
                                            </object>
                                        </child>

                                        <child>
                                            <object class="AdwActionRow">
                                                <property name="title" translatable="yes">Frequency</property>

                                                <child>
                                                    <object class="GtkSpinButton" id="spinbutton_test_signal_frequency">
                                                        <property name="valign">center</property>
                                                        <property name="sensitive" bind-source="checkbutton_signal_sine" bind-property="active" bind-flags="sync-create" />
                                                        <property name="adjustment">
                                                            <object class="GtkAdjustment">
                                                                <property name="lower">20</property>
                                                                <property name="upper">22000</property>
                                                                <property name="value">1000</property>
                                                                <property name="step-increment">1</property>
                                                                <property name="page-increment">100</property>
                                                            </object>
                                                        </property>
                                                        <property name="digits">0</property>
                                                        <property name="update-policy">if-valid</property>
                                                        <property name="width-chars">10</property>
                                                    </object>
                                                </child>
                                            </object>
                                        </child>
                                    </object>
                                </child>
                            </object>
                        </property>
                    </object>
                </child>
            </object>
        </child>
    </template>

    <object class="GtkSizeGroup">
        <property name="mode">horizontal</property>
        <widgets>
            <widget name="dropdown_input_devices" />
            <widget name="dropdown_output_devices" />
        </widgets>
    </object>
</interface>
