1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CHROMECAST_PUBLIC_CAST_SYS_INFO_H_
6 #define CHROMECAST_PUBLIC_CAST_SYS_INFO_H_
11 namespace chromecast
{
13 // Pure abstract interface for system information which is accessed by other
14 // processes as well as cast_shell browser process. All information should be
16 // It should be possible to instantiate multiple instances of CastSysInfo and
17 // should be able to be instantiated at any point in the startup process. Other
18 // processes must be able to create an instance of CastSysInfo.
27 virtual ~CastSysInfo() {}
29 // Returns the system build type.
30 virtual BuildType
GetBuildType() = 0;
31 // Returns release channel of system.
32 virtual std::string
GetSystemReleaseChannel() = 0;
33 // Returns serial number of the device.
34 virtual std::string
GetSerialNumber() = 0;
35 // Returns product code name of the device.
36 virtual std::string
GetProductName() = 0;
37 // Returns model name of device (eg: Chromecast, Nexus Player, ...).
38 virtual std::string
GetDeviceModel() = 0;
39 // Returns the board's name.
40 virtual std::string
GetBoardName() = 0;
41 // Returns the revision of board (eg: 514, ...).
42 virtual std::string
GetBoardRevision() = 0;
43 // Returns device manufacturer (eg: Google, ...).
44 virtual std::string
GetManufacturer() = 0;
45 // Returns the system's build number (eg: 100, 20000 ...).
46 // This describes system version which may be different with
48 virtual std::string
GetSystemBuildNumber() = 0;
50 // Returns default country and locale baked from the factory.
51 virtual std::string
GetFactoryCountry() = 0;
52 virtual std::string
GetFactoryLocale(std::string
* second_locale
) = 0;
54 // Returns the name of the wifi interface used to connect to the internet.
55 virtual std::string
GetWifiInterface() = 0;
56 // Returns the name of the software AP interface.
57 virtual std::string
GetApInterface() = 0;
60 } // namespace chromecast
62 #endif // CHROMECAST_PUBLIC_CAST_SYS_INFO_H_