| // Copyright 2015 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 "cobalt/h5vcc/h5vcc_system.h" |
| |
| #include "base/stringprintf.h" |
| #include "cobalt/version.h" |
| #include "cobalt_build_id.h" // NOLINT(build/include) |
| #include "starboard/system.h" |
| |
| namespace cobalt { |
| namespace h5vcc { |
| |
| H5vccSystem::H5vccSystem() {} |
| |
| bool H5vccSystem::are_keys_reversed() const { |
| return SbSystemHasCapability(kSbSystemCapabilityReversedEnterAndBack); |
| } |
| |
| std::string H5vccSystem::build_id() const { |
| return base::StringPrintf( |
| "Built on %s (%s) at version #%s by %s", COBALT_BUILD_VERSION_DATE, |
| COBALT_BUILD_VERSION_TIMESTAMP, COBALT_BUILD_VERSION_NUMBER, |
| COBALT_BUILD_VERSION_USERNAME); |
| } |
| |
| std::string H5vccSystem::platform() const { |
| char property[512]; |
| |
| std::string result; |
| if (!SbSystemGetProperty(kSbSystemPropertyPlatformName, property, |
| SB_ARRAY_SIZE_INT(property))) { |
| DLOG(FATAL) << "Failed to get kSbSystemPropertyPlatformName."; |
| } else { |
| result = property; |
| } |
| |
| return result; |
| } |
| |
| std::string H5vccSystem::region() const { |
| // No region information. |
| return ""; |
| } |
| |
| std::string H5vccSystem::version() const { return COBALT_VERSION; } |
| |
| // In the future some platforms may launch custom help dialogs. |
| // return false to indicate the client should launch their own dialog. |
| bool H5vccSystem::TriggerHelp() const { return false; } |
| |
| uint32 H5vccSystem::user_on_exit_strategy() const { |
| // Convert from the Cobalt gyp setting variable's enum options to the H5VCC |
| // interface enum options. |
| std::string exit_strategy_str(COBALT_USER_ON_EXIT_STRATEGY); |
| if (exit_strategy_str == "stop") { |
| return static_cast<UserOnExitStrategy>(kUserOnExitStrategyClose); |
| } else if (exit_strategy_str == "suspend") { |
| return static_cast<UserOnExitStrategy>(kUserOnExitStrategyMinimize); |
| } else if (exit_strategy_str == "noexit") { |
| return static_cast<UserOnExitStrategy>(kUserOnExitStrategyNoExit); |
| } else { |
| NOTREACHED() << "Unknown gyp-defined exit strategy."; |
| return static_cast<UserOnExitStrategy>(kUserOnExitStrategyClose); |
| } |
| } |
| |
| } // namespace h5vcc |
| } // namespace cobalt |