mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 17:47:36 +00:00
AudioServer: Clean up ClientAudioStream APIs
- Use Optional references instead of pointers - Clean up some const and nullability weirdness - Use proper error return value for get_next_sample
This commit is contained in:
parent
aacb4fc590
commit
d905498fb6
3 changed files with 29 additions and 25 deletions
|
@ -10,7 +10,6 @@
|
|||
#include "ConnectionFromClient.h"
|
||||
#include "FadingProperty.h"
|
||||
#include <AK/Atomic.h>
|
||||
#include <AK/Badge.h>
|
||||
#include <AK/Debug.h>
|
||||
#include <AK/RefCounted.h>
|
||||
#include <AK/WeakPtr.h>
|
||||
|
@ -20,22 +19,29 @@ namespace AudioServer {
|
|||
|
||||
class ClientAudioStream : public RefCounted<ClientAudioStream> {
|
||||
public:
|
||||
enum class ErrorState {
|
||||
ClientDisconnected,
|
||||
ClientPaused,
|
||||
ClientUnderrun,
|
||||
ResamplingError,
|
||||
};
|
||||
|
||||
explicit ClientAudioStream(ConnectionFromClient&);
|
||||
~ClientAudioStream() = default;
|
||||
|
||||
bool get_next_sample(Audio::Sample& sample, u32 audiodevice_sample_rate);
|
||||
ErrorOr<Audio::Sample, ErrorState> get_next_sample(u32 audiodevice_sample_rate);
|
||||
void clear();
|
||||
|
||||
bool is_connected() const;
|
||||
|
||||
ConnectionFromClient* client();
|
||||
Optional<ConnectionFromClient&> client();
|
||||
|
||||
void set_buffer(OwnPtr<Audio::AudioQueue> buffer);
|
||||
void set_buffer(NonnullOwnPtr<Audio::AudioQueue> buffer);
|
||||
|
||||
void set_paused(bool paused);
|
||||
FadingProperty<double>& volume();
|
||||
double volume() const;
|
||||
void set_volume(double const volume);
|
||||
void set_volume(double volume);
|
||||
bool is_muted() const;
|
||||
void set_muted(bool muted);
|
||||
u32 sample_rate() const;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue