]> git.sesse.net Git - nageru/blobdiff - input_mapping_dialog.h
Make sure AudioDevice::name is set for ALSA cards, not just video capture cards.
[nageru] / input_mapping_dialog.h
index 05bc223ee03efc991fbbdd275b5433e6341ccc25..0ca81d976866fbd3079015d5da9abdb0bc48e19c 100644 (file)
@@ -6,29 +6,36 @@
 #include <vector>
 #include <sys/time.h>
 
+#include "audio_mixer.h"
 #include "mixer.h"
 
 namespace Ui {
 class InputMappingDialog;
 }  // namespace Ui
 
+class QComboBox;
+
 class InputMappingDialog : public QDialog
 {
        Q_OBJECT
 
 public:
        InputMappingDialog();
+       ~InputMappingDialog();
 
 private:
        void fill_ui_from_mapping(const InputMapping &mapping);
        void fill_row_from_bus(unsigned row, const InputMapping::Bus &bus);
        void setup_channel_choices_from_bus(unsigned row, const InputMapping::Bus &bus);
        void cell_changed(int row, int column);
-       void card_selected(unsigned row, int index);
+       void card_selected(QComboBox *card_combo, unsigned row, int index);
        void channel_selected(unsigned row, unsigned channel, int index);
        void ok_clicked();
        void cancel_clicked();
        void add_clicked();
+       void remove_clicked();
+       void updown_clicked(int direction);
+       void update_button_state();
 
        Ui::InputMappingDialog *ui;
        InputMapping mapping;  // Under edit. Will be committed on OK.
@@ -38,7 +45,9 @@ private:
        // held forever).
        InputMapping old_mapping;
 
-       const std::vector<std::string> card_names;
+       std::map<DeviceSpec, DeviceInfo> devices;
+
+       AudioMixer::state_changed_callback_t saved_callback;
 };
 
 #endif  // !defined(_INPUT_MAPPING_DIALOG_H)