RemoteVideoTrackProxy.h [plain text]
#pragma once
#if ENABLE(GPU_PROCESS)
#include "TrackPrivateRemoteIdentifier.h"
#include <WebCore/TrackBase.h>
#include <WebCore/VideoTrackPrivate.h>
namespace IPC {
class Connection;
}
namespace WebKit {
class RemoteMediaPlayerProxy;
struct TrackPrivateRemoteConfiguration;
class RemoteVideoTrackProxy final
: public ThreadSafeRefCounted<RemoteVideoTrackProxy, WTF::DestructionThread::Main>
, private WebCore::VideoTrackPrivateClient {
public:
static Ref<RemoteVideoTrackProxy> create(RemoteMediaPlayerProxy& player, TrackPrivateRemoteIdentifier id, Ref<IPC::Connection>&& connection, WebCore::VideoTrackPrivate& trackPrivate)
{
return adoptRef(*new RemoteVideoTrackProxy(player, id, WTFMove(connection), trackPrivate));
}
TrackPrivateRemoteIdentifier identifier() const { return m_identifier; };
void setSelected(bool selected) { m_trackPrivate->setSelected(selected); }
private:
RemoteVideoTrackProxy(RemoteMediaPlayerProxy&, TrackPrivateRemoteIdentifier, Ref<IPC::Connection>&&, WebCore::VideoTrackPrivate&);
void selectedChanged(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::VideoTrackPrivate> m_trackPrivate;
};
}
#endif // ENABLE(GPU_PROCESS)