mainform.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. #ifndef MAINFORM_H
  2. #define MAINFORM_H
  3. #include <QWidget>
  4. #include <QLibrary>
  5. #include <QDebug>
  6. #include <QMetaType>
  7. #include "iaudiomgrinterface.h"
  8. enum DevMode
  9. {
  10. AudioInput = ( 1 << 4),
  11. AudioInput_HandFree,
  12. AudioInput_PickUp,
  13. AudioOutput = (1 << 5),
  14. AudioOutput_HandFree,
  15. AudioOutput_PickUp,
  16. VideoDevice = (1 << 6),
  17. VideoDevice_Env,
  18. VideoDevice_Opt,
  19. VideoDevice_Ews,
  20. MediaALL = 0xFFFF
  21. };
  22. class AudioDeviceInfo
  23. {
  24. public:
  25. QString name;
  26. DevMode mod;
  27. };
  28. Q_DECLARE_METATYPE(AudioDeviceInfo)
  29. namespace Ui {
  30. class MainForm;
  31. }
  32. class MainForm : public QWidget
  33. {
  34. Q_OBJECT
  35. public:
  36. explicit MainForm(QWidget *parent = nullptr);
  37. ~MainForm();
  38. private slots:
  39. void on_loadBtn_clicked();
  40. bool loadExportFunctions();
  41. void modeChanged(int idx);
  42. void deviceChanged(int idx);
  43. void on_saveBtn_clicked();
  44. private:
  45. QVariant getCurrentActiveDev(DevMode mode);
  46. bool setCurrentActiveDev(DevMode mode, QVariant value);
  47. bool setCurrentActiveDevThirdParty(DevMode mode, QVariant value);
  48. QString getRootIniPath();
  49. DevMode convertIdx2Mode(int idx);
  50. QList<AudioDeviceInfo> availableDevices(DevMode mode);
  51. private:
  52. Ui::MainForm *ui;
  53. QLibrary* deviceInfoLib;
  54. AudioDeviceInfo m_deviceInfo;
  55. QString rootFilePath;
  56. IAudioMgr* m_pAudioMgr;
  57. };
  58. #endif // MAINFORM_H