// Copyright 2017 Google Inc. All Rights Reserved. | |
// | |
// Licensed under the Apache License, Version 2.0 (the "License"); | |
// you may not use this file except in compliance with the License. | |
// You may obtain a copy of the License at | |
// | |
// http://www.apache.org/licenses/LICENSE-2.0 | |
// | |
// Unless required by applicable law or agreed to in writing, software | |
// distributed under the License is distributed on an "AS IS" BASIS, | |
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
// See the License for the specific language governing permissions and | |
// limitations under the License. | |
#include "starboard/media.h" | |
#include "starboard/log.h" | |
#include "starboard/shared/uwp/application_uwp.h" | |
#include "starboard/time.h" | |
using starboard::shared::uwp::ApplicationUwp; | |
bool SbMediaSetOutputProtection(bool should_enable_dhcp) { | |
bool is_hdcp_on = SbMediaIsOutputProtected(); | |
if (is_hdcp_on == should_enable_dhcp) { | |
return true; | |
} | |
SB_LOG(INFO) << "Attempting to " | |
<< (should_enable_dhcp ? "enable" : "disable") | |
<< " output protection. Current status: " | |
<< (is_hdcp_on ? "enabled" : "disabled"); | |
SbTimeMonotonic tick = SbTimeGetMonotonicNow(); | |
bool hdcp_success = false; | |
if (should_enable_dhcp) { | |
hdcp_success = ApplicationUwp::Get()->TurnOnHdcp(); | |
} else { | |
hdcp_success = ApplicationUwp::Get()->TurnOffHdcp(); | |
} | |
is_hdcp_on = (hdcp_success ? should_enable_dhcp : !should_enable_dhcp); | |
SbTimeMonotonic tock = SbTimeGetMonotonicNow(); | |
SB_LOG(INFO) << "Output protection is " | |
<< (is_hdcp_on ? "enabled" : "disabled") << ". Toggling HDCP took " | |
<< (tock - tick) / kSbTimeMillisecond << " milliseconds."; | |
return hdcp_success; | |
} |