11 #include "cores/AudioEngine/AESinkFactory.h" 12 #include "cores/AudioEngine/Engines/ActiveAE/ActiveAEBuffer.h" 13 #include "cores/AudioEngine/Interfaces/AE.h" 14 #include "cores/AudioEngine/Interfaces/AESink.h" 15 #include "threads/Event.h" 16 #include "threads/SystemClock.h" 17 #include "threads/Thread.h" 18 #include "utils/ActorProtocol.h" 27 using namespace Actor;
35 const std::string *device;
50 :
Protocol(std::move(name), inEvent, outEvent)
77 :
Protocol(std::move(name), inEvent, outEvent)
98 void EnumerateSinkList(
bool force, std::string driver);
99 void EnumerateOutputDevices(AEDeviceList &devices,
bool passthrough);
100 std::string ValidateOuputDevice(
const std::string& device,
bool passthrough)
const;
103 AEDeviceType GetDeviceType(
const std::string &device);
104 bool HasPassthroughDevice();
105 bool SupportsFormat(
const std::string &device,
AEAudioFormat &format);
106 bool DeviceExist(std::string driver,
const std::string& device);
107 bool NeedIecPack()
const {
return m_needIecPack; }
112 void Process()
override;
114 void PrintSinks(std::string& driver);
115 void GetDeviceFriendlyName(
const std::string& device);
117 void ReturnBuffers();
118 void SetSilenceTimer();
119 bool NeedIECPacking();
124 void GenerateNoise();
129 bool m_bStateMachineSelfTrigger;
130 std::chrono::milliseconds m_extTimeout;
131 std::chrono::minutes m_silenceTimeOut{std::chrono::minutes::zero()};
133 std::chrono::milliseconds m_extSilenceTimeout;
134 bool m_extAppFocused;
147 std::vector<uint8_t> m_mergeBuffer;
149 std::string m_deviceFriendlyName;
150 std::string m_device;
151 std::vector<AE::AESinkInfo> m_sinkInfoList;
152 std::unique_ptr<IAESink> m_sink;
157 std::unique_ptr<CAEBitstreamPacker> m_packer;
158 bool m_needIecPack{
false};
This is an Event class built from a ConditionVariable.
Definition: Event.h:35
Definition: ActorProtocol.h:73
Definition: ActiveAESink.h:92
Definition: SystemClock.h:31
Definition: ActiveAESink.h:31
Definition: ActiveAESink.h:38
Definition: AEBitstreamPacker.h:20
Definition: ActiveAESink.h:46
Definition: Application.h:69
Definition: ActorProtocol.h:21
Definition: ActorProtocol.h:45
Definition: ActiveAESink.h:73
Definition: ActiveAE.h:182
Definition: ActiveAEBuffer.h:45