X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=nageru%2Fdelay_analyzer.h;fp=nageru%2Fdelay_analyzer.h;h=cc75325b19a331cc0bbe23c660e485aa60d6c592;hb=bd01e11a41a19fef2315319909d8655cac359f0f;hp=0000000000000000000000000000000000000000;hpb=a944bad466ba5601a96f6833e1ea2eb31f9b55af;p=nageru diff --git a/nageru/delay_analyzer.h b/nageru/delay_analyzer.h new file mode 100644 index 0000000..cc75325 --- /dev/null +++ b/nageru/delay_analyzer.h @@ -0,0 +1,47 @@ +#ifndef _DELAY_ANALYZER_H +#define _DELAY_ANALYZER_H 1 + +#include + +#include +#include + +#include "audio_clip.h" +#include "delay_analyzer_interface.h" +#include "input_mapping.h" + +namespace bmusb { +struct AudioFormat; +} // namespace bmusb + +namespace Ui { +class DelayAnalyzer; +} // namespace Ui + +class QComboBox; + +class DelayAnalyzer : public QMainWindow, public DelayAnalyzerInterface +{ + Q_OBJECT + +public: + DelayAnalyzer(); + ~DelayAnalyzer(); + + bool is_grabbing() const override { return grabbing; } + void add_audio(DeviceSpec device_spec, const uint8_t *data, unsigned num_samples, bmusb::AudioFormat audio_format, std::chrono::steady_clock::time_point frame_time) override; + +private: + Ui::DelayAnalyzer *ui; + AudioClip clip1, clip2; + + void grab_clicked(); + void card_selected(QComboBox *card_combo, int selected_index); + void channel_selected(QComboBox *channel_combo); + DeviceSpec get_selected_device(QComboBox *card_combo); + + std::atomic grabbing{false}; + std::map devices; +}; + +#endif // !defined(_DELAY_ANALYZER_H)