aboutsummaryrefslogtreecommitdiff
path: root/host/frontend/webrtc/audio_handler.h
diff options
context:
space:
mode:
Diffstat (limited to 'host/frontend/webrtc/audio_handler.h')
-rw-r--r--host/frontend/webrtc/audio_handler.h79
1 files changed, 0 insertions, 79 deletions
diff --git a/host/frontend/webrtc/audio_handler.h b/host/frontend/webrtc/audio_handler.h
deleted file mode 100644
index 380205292..000000000
--- a/host/frontend/webrtc/audio_handler.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#pragma once
-
-#include <memory>
-#include <mutex>
-#include <thread>
-#include <vector>
-
-#include "host/frontend/webrtc/lib/audio_sink.h"
-#include "host/frontend/webrtc/lib/audio_source.h"
-#include "host/libs/audio_connector/server.h"
-
-namespace cuttlefish {
-class AudioHandler : public AudioServerExecutor {
- // TODO(jemoreira): This can probably be avoided if playback goes through the
- // audio device instead.
- struct HoldingBuffer {
- std::vector<uint8_t> buffer;
- size_t count;
-
- void Reset(size_t size);
- size_t Add(const volatile uint8_t* data, size_t max_len);
- bool empty() const;
- bool full() const;
- uint8_t* data();
- };
- struct StreamDesc {
- std::mutex mtx;
- int bits_per_sample = -1;
- int sample_rate = -1;
- int channels = -1;
- bool active = false;
- HoldingBuffer buffer;
- };
-
- public:
- AudioHandler(std::unique_ptr<AudioServer> audio_server,
- std::shared_ptr<webrtc_streaming::AudioSink> audio_sink,
- std::shared_ptr<webrtc_streaming::AudioSource> audio_source);
- ~AudioHandler() override = default;
-
- void Start();
-
- // AudioServerExecutor implementation
- void StreamsInfo(StreamInfoCommand& cmd) override;
- void SetStreamParameters(StreamSetParamsCommand& cmd) override;
- void PrepareStream(StreamControlCommand& cmd) override;
- void ReleaseStream(StreamControlCommand& cmd) override;
- void StartStream(StreamControlCommand& cmd) override;
- void StopStream(StreamControlCommand& cmd) override;
-
- void OnPlaybackBuffer(TxBuffer buffer) override;
- void OnCaptureBuffer(RxBuffer buffer) override;
-
- private:
- [[noreturn]] void Loop();
-
- std::shared_ptr<webrtc_streaming::AudioSink> audio_sink_;
- std::unique_ptr<AudioServer> audio_server_;
- std::thread server_thread_;
- std::vector<StreamDesc> stream_descs_ = {};
- std::shared_ptr<webrtc_streaming::AudioSource> audio_source_;
-};
-} // namespace cuttlefish