ladybird/Libraries/LibMedia/Sinks/AudioSink.h
Zaggy1024 d67bf635e2 LibMedia: Fit the media pipeline nodes into their intended interfaces
Now, all nodes are connected through Sink::connect_input() and
disconnect_input().

AudioMixer now derives from a base AudioProcessor class that inherits
from both AudioSink and AudioProducer. It is the only current node that
can accept multiple inputs, tracking each one by its pointer identity.
2026-05-13 02:05:35 -05:00

29 lines
703 B
C++

/*
* Copyright (c) 2025, Gregory Bertilson <gregory@ladybird.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <AK/NonnullRefPtr.h>
#include <AK/Time.h>
#include <LibMedia/AudioBlock.h>
#include <LibMedia/Export.h>
#include <LibMedia/Forward.h>
#include <LibMedia/MediaPipelineNode.h>
#include <LibMedia/Producers/AudioProducer.h>
namespace Media {
class MEDIA_API AudioSink : public virtual MediaPipelineNode {
public:
virtual ~AudioSink() = default;
virtual ErrorOr<void> connect_input(NonnullRefPtr<AudioProducer> const&) = 0;
virtual void disconnect_input(NonnullRefPtr<AudioProducer> const&) = 0;
virtual void seek(AK::Duration timestamp) = 0;
};
}