AudioOutput.h 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. //
  2. // libtgvoip is free and unencumbered public domain software.
  3. // For more information, see http://unlicense.org or the UNLICENSE file
  4. // you should have received with this source code distribution.
  5. //
  6. #ifndef LIBTGVOIP_AUDIOOUTPUT_H
  7. #define LIBTGVOIP_AUDIOOUTPUT_H
  8. #include <stdint.h>
  9. #include <string>
  10. #include <vector>
  11. #include <memory>
  12. #include "../MediaStreamItf.h"
  13. namespace tgvoip{
  14. class AudioInputDevice;
  15. class AudioOutputDevice;
  16. namespace audio{
  17. class AudioOutput : public MediaStreamItf{
  18. public:
  19. AudioOutput();
  20. AudioOutput(std::string deviceID);
  21. virtual ~AudioOutput();
  22. virtual bool IsPlaying()=0;
  23. static int32_t GetEstimatedDelay();
  24. virtual std::string GetCurrentDevice();
  25. virtual void SetCurrentDevice(std::string deviceID);
  26. //static std::unique_ptr<AudioOutput> Create(std::string deviceID, void* platformSpecific);
  27. static void EnumerateDevices(std::vector<AudioOutputDevice>& devs);
  28. bool IsInitialized();
  29. protected:
  30. std::string currentDevice;
  31. bool failed;
  32. static int32_t estimatedDelay;
  33. };
  34. }}
  35. #endif //LIBTGVOIP_AUDIOOUTPUT_H