AudioSessionRoutingArbitrator.cpp [plain text]
#include "config.h"
#include "AudioSessionRoutingArbitrator.h"
#if ENABLE(ROUTING_ARBITRATION)
#include "AudioSessionRoutingArbitratorProxy.h"
#include "AudioSessionRoutingArbitratorProxyMessages.h"
#include "WebConnectionToUIProcess.h"
#include "WebProcess.h"
namespace WebKit {
using namespace WebCore;
AudioSessionRoutingArbitrator::AudioSessionRoutingArbitrator(WebProcess& process)
: m_process(process)
{
AudioSession::sharedSession().setRoutingArbitrationClient(makeWeakPtr(this));
}
AudioSessionRoutingArbitrator::~AudioSessionRoutingArbitrator() = default;
const char* AudioSessionRoutingArbitrator::supplementName()
{
return "AudioSessionRoutingArbitrator";
}
void AudioSessionRoutingArbitrator::beginRoutingArbitrationWithCategory(AudioSession::CategoryType category, CompletionHandler<void(RoutingArbitrationError, DefaultRouteChanged)>&& callback)
{
m_process.parentProcessConnection()->sendWithAsyncReply(Messages::AudioSessionRoutingArbitratorProxy::BeginRoutingArbitrationWithCategory(category), WTFMove(callback), AudioSessionRoutingArbitratorProxy::destinationId());
}
void AudioSessionRoutingArbitrator::leaveRoutingAbritration()
{
m_process.parentProcessConnection()->send(Messages::AudioSessionRoutingArbitratorProxy::EndRoutingArbitration(), AudioSessionRoutingArbitratorProxy::destinationId());
}
}
#endif