RemoteAudioTrackProxy.h [plain text]
#pragma once
#if ENABLE(GPU_PROCESS)
#include "TrackPrivateRemoteIdentifier.h"
#include <WebCore/AudioTrackPrivate.h>
#include <WebCore/TrackBase.h>
namespace IPC {
class Connection;
}
namespace WebKit {
struct TrackPrivateRemoteConfiguration;
class RemoteMediaPlayerProxy;
class RemoteAudioTrackProxy final
: public ThreadSafeRefCounted<RemoteAudioTrackProxy, WTF::DestructionThread::Main>
, private WebCore::AudioTrackPrivateClient {
public:
static Ref<RemoteAudioTrackProxy> create(RemoteMediaPlayerProxy& player, TrackPrivateRemoteIdentifier id, Ref<IPC::Connection>&& connection, WebCore::AudioTrackPrivate& trackPrivate)
{
return adoptRef(*new RemoteAudioTrackProxy(player, id, WTFMove(connection), trackPrivate));
}
TrackPrivateRemoteIdentifier identifier() const { return m_identifier; };
void setEnabled(bool enabled) { m_trackPrivate->setEnabled(enabled); }
private:
RemoteAudioTrackProxy(RemoteMediaPlayerProxy&, TrackPrivateRemoteIdentifier, Ref<IPC::Connection>&&, WebCore::AudioTrackPrivate&);
void enabledChanged(bool) final;
void idChanged(const AtomString&) final;
void labelChanged(const AtomString&) final;
void languageChanged(const AtomString&) final;
void willRemove() final;
TrackPrivateRemoteConfiguration& configuration();
void configurationChanged();
RemoteMediaPlayerProxy& m_player;
TrackPrivateRemoteIdentifier m_identifier;
Ref<IPC::Connection> m_webProcessConnection;
Ref<WebCore::AudioTrackPrivate> m_trackPrivate;
};
}
#endif // ENABLE(GPU_PROCESS)