Audio.h 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. #ifndef AUDIO_H
  2. #define AUDIO_H
  3. #include "AudioService.h"
  4. #include <QObject>
  5. #include <QString>
  6. #include <QGuiApplication>
  7. #include <QProcess>
  8. #include <QScopedPointer>
  9. class AudioPrivate;
  10. class Audio
  11. : public QObject
  12. {
  13. Q_OBJECT
  14. Q_DISABLE_COPY(Audio)
  15. #ifdef g_Audio
  16. #undef g_Audio
  17. #endif
  18. #define g_Audio (Audio::instance())
  19. public:
  20. inline static Audio* instance() {
  21. static Audio* audio(new Audio(qApp));
  22. return audio;
  23. }
  24. bool requestAudioSource(const int source);
  25. void releaseAudioSource(const int source);
  26. void releaseVolume();
  27. int getcurrentvolumevalue();
  28. void reset();
  29. void setvolumebalance();
  30. void requestMuteToggole();
  31. void requestSpeaker(const int item);
  32. void requestMute(const int item);
  33. void requestIncreaseVolume();
  34. void requestDecreaseVolume();
  35. void requestSetVolume(const int volume);
  36. void setEqualizerItem(const int item, const int bass, const int middle, const int treble);
  37. void EqualizerItemTogglePrevious();
  38. void EqualizerItemToggleNext();
  39. void setSoundItem(const int item, const int left, const int right);
  40. AudioSource getPhoneSource();
  41. AudioSource getMultimediaSource();
  42. AudioSource getAudioSource();
  43. MuteItem getMute();
  44. void faderOut();
  45. //amixer alsa phone volume controls 20190828
  46. void open_amixer_mode(int stream_name, int ctrlname);
  47. void close_amixer_mode();
  48. void get_amixersoftmaster_volume();
  49. void set_amixersoftmaster_volume(int volume);
  50. signals:
  51. void onMuteChange(const int mute);
  52. void onVolumeChange(const int volume);
  53. void onEqualizerItemChange(const int item, const int bass, const int middle, const int treble);
  54. void onSoundItemChange(const int item, const int left, const int right);
  55. void onHolderChange(const int oldHolder, const int newHolder);
  56. private slots:
  57. void onServiceUnregistered(const QString& service);
  58. void onMuteChangeHandler(const int mute);
  59. void onEqualizerItemChangeHandler(const int item, const int bass, const int middle, const int treble);
  60. private:
  61. explicit Audio(QObject* parent = NULL);
  62. ~Audio();
  63. void initializePrivate();
  64. friend class AudioPrivate;
  65. QScopedPointer<AudioPrivate> m_Private;
  66. };
  67. #endif // AUDIO_H