audio: channels

This commit is contained in:
MihailRis
2024-03-04 02:35:22 +03:00
parent 5657457edb
commit 75ee269db3
8 changed files with 259 additions and 73 deletions
+10 -5
View File
@@ -40,7 +40,7 @@ namespace audio {
return pcm;
}
Speaker* newInstance(int priority) const override;
Speaker* newInstance(int priority, int channel) const override;
};
class ALStream : public Stream {
@@ -61,7 +61,7 @@ namespace audio {
std::shared_ptr<PCMStream> getSource() const override;
void bindSpeaker(speakerid_t speaker) override;
Speaker* createSpeaker(bool loop) override;
Speaker* createSpeaker(bool loop, int channel) override;
speakerid_t getSpeaker() const override;
void update(double delta) override;
void setTime(duration_t time) override;
@@ -73,13 +73,19 @@ namespace audio {
class ALSpeaker : public Speaker {
ALAudio* al;
int priority;
bool stoppedManually = false;
int channel;
float volume = 0.0f;
public:
bool stopped = true;
bool paused = false;
uint source;
ALSpeaker(ALAudio* al, uint source, int priority);
ALSpeaker(ALAudio* al, uint source, int priority, int channel);
~ALSpeaker();
void update(const Channel* channel, float masterVolume) override;
int getChannel() const override;
State getState() const override;
float getVolume() const override;
@@ -94,7 +100,6 @@ namespace audio {
void play() override;
void pause() override;
void stop() override;
bool isStoppedManually() const override;
duration_t getTime() const override;
void setTime(duration_t time) override;