[6076] | 1 | /* $Id: FirmwareSettingsImpl.h 101418 2023-10-12 01:07:17Z vboxsync $ */
|
---|
| 2 |
|
---|
[1217] | 3 | /** @file
|
---|
| 4 | *
|
---|
[101038] | 5 | * VirtualBox COM class implementation - Machine firmware settings.
|
---|
[1217] | 6 | */
|
---|
| 7 |
|
---|
| 8 | /*
|
---|
[98103] | 9 | * Copyright (C) 2006-2023 Oracle and/or its affiliates.
|
---|
[1217] | 10 | *
|
---|
[96407] | 11 | * This file is part of VirtualBox base platform packages, as
|
---|
| 12 | * available from https://www.virtualbox.org.
|
---|
| 13 | *
|
---|
| 14 | * This program is free software; you can redistribute it and/or
|
---|
| 15 | * modify it under the terms of the GNU General Public License
|
---|
| 16 | * as published by the Free Software Foundation, in version 3 of the
|
---|
| 17 | * License.
|
---|
| 18 | *
|
---|
| 19 | * This program is distributed in the hope that it will be useful, but
|
---|
| 20 | * WITHOUT ANY WARRANTY; without even the implied warranty of
|
---|
| 21 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
---|
| 22 | * General Public License for more details.
|
---|
| 23 | *
|
---|
| 24 | * You should have received a copy of the GNU General Public License
|
---|
| 25 | * along with this program; if not, see <https://www.gnu.org/licenses>.
|
---|
| 26 | *
|
---|
| 27 | * SPDX-License-Identifier: GPL-3.0-only
|
---|
[1217] | 28 | */
|
---|
| 29 |
|
---|
[101038] | 30 | #ifndef MAIN_INCLUDED_FirmwareSettingsImpl_h
|
---|
| 31 | #define MAIN_INCLUDED_FirmwareSettingsImpl_h
|
---|
[76487] | 32 | #ifndef RT_WITHOUT_PRAGMA_ONCE
|
---|
| 33 | # pragma once
|
---|
| 34 | #endif
|
---|
[1217] | 35 |
|
---|
[101038] | 36 | #include "FirmwareSettingsWrap.h"
|
---|
[1217] | 37 |
|
---|
[30764] | 38 | class GuestOSType;
|
---|
| 39 |
|
---|
[22173] | 40 | namespace settings
|
---|
| 41 | {
|
---|
[101038] | 42 | struct FirmwareSettings;
|
---|
[22173] | 43 | }
|
---|
| 44 |
|
---|
[101038] | 45 | class ATL_NO_VTABLE FirmwareSettings :
|
---|
| 46 | public FirmwareSettingsWrap
|
---|
[1217] | 47 | {
|
---|
| 48 | public:
|
---|
[30714] | 49 |
|
---|
[101038] | 50 | DECLARE_COMMON_CLASS_METHODS(FirmwareSettings)
|
---|
[1217] | 51 |
|
---|
| 52 | HRESULT FinalConstruct();
|
---|
| 53 | void FinalRelease();
|
---|
| 54 |
|
---|
| 55 | // public initializer/uninitializer for internal purposes only
|
---|
[49871] | 56 | HRESULT init(Machine *parent);
|
---|
[101038] | 57 | HRESULT init(Machine *parent, FirmwareSettings *that);
|
---|
| 58 | HRESULT initCopy(Machine *parent, FirmwareSettings *that);
|
---|
[1217] | 59 | void uninit();
|
---|
| 60 |
|
---|
[81425] | 61 | // public methods for internal purposes only
|
---|
[101038] | 62 | HRESULT i_loadSettings(const settings::FirmwareSettings &data);
|
---|
| 63 | HRESULT i_saveSettings(settings::FirmwareSettings &data);
|
---|
| 64 | FirmwareType_T i_getFirmwareType() const;
|
---|
[1217] | 65 |
|
---|
[49871] | 66 | void i_rollback();
|
---|
| 67 | void i_commit();
|
---|
[101038] | 68 | void i_copyFrom(FirmwareSettings *aThat);
|
---|
[49871] | 69 | void i_applyDefaults(GuestOSType *aOsType);
|
---|
[6076] | 70 |
|
---|
[49871] | 71 | private:
|
---|
[1217] | 72 |
|
---|
[101038] | 73 | // wrapped IFirmwareSettings properties
|
---|
| 74 | HRESULT getFirmwareType(FirmwareType_T *aType);
|
---|
| 75 | HRESULT setFirmwareType(FirmwareType_T aType);
|
---|
[49871] | 76 | HRESULT getLogoFadeIn(BOOL *enabled);
|
---|
| 77 | HRESULT setLogoFadeIn(BOOL enable);
|
---|
| 78 | HRESULT getLogoFadeOut(BOOL *enabled);
|
---|
| 79 | HRESULT setLogoFadeOut(BOOL enable);
|
---|
| 80 | HRESULT getLogoDisplayTime(ULONG *displayTime);
|
---|
| 81 | HRESULT setLogoDisplayTime(ULONG displayTime);
|
---|
| 82 | HRESULT getLogoImagePath(com::Utf8Str &imagePath);
|
---|
| 83 | HRESULT setLogoImagePath(const com::Utf8Str &imagePath);
|
---|
[101038] | 84 | HRESULT getBootMenuMode(FirmwareBootMenuMode_T *bootMenuMode);
|
---|
| 85 | HRESULT setBootMenuMode(FirmwareBootMenuMode_T bootMenuMode);
|
---|
[49871] | 86 | HRESULT getACPIEnabled(BOOL *enabled);
|
---|
| 87 | HRESULT setACPIEnabled(BOOL enable);
|
---|
| 88 | HRESULT getIOAPICEnabled(BOOL *aIOAPICEnabled);
|
---|
| 89 | HRESULT setIOAPICEnabled(BOOL aIOAPICEnabled);
|
---|
[61042] | 90 | HRESULT getAPICMode(APICMode_T *aAPICMode);
|
---|
| 91 | HRESULT setAPICMode(APICMode_T aAPICMode);
|
---|
[49871] | 92 | HRESULT getTimeOffset(LONG64 *offset);
|
---|
| 93 | HRESULT setTimeOffset(LONG64 offset);
|
---|
| 94 | HRESULT getPXEDebugEnabled(BOOL *enabled);
|
---|
| 95 | HRESULT setPXEDebugEnabled(BOOL enable);
|
---|
[81581] | 96 | HRESULT getSMBIOSUuidLittleEndian(BOOL *enabled);
|
---|
| 97 | HRESULT setSMBIOSUuidLittleEndian(BOOL enable);
|
---|
[101418] | 98 | HRESULT getAutoSerialNumGen(BOOL *enabled);
|
---|
| 99 | HRESULT setAutoSerialNumGen(BOOL enable);
|
---|
[49871] | 100 |
|
---|
[25201] | 101 | struct Data;
|
---|
| 102 | Data *m;
|
---|
[1217] | 103 | };
|
---|
[101038] | 104 | #endif /* !MAIN_INCLUDED_FirmwareSettingsImpl_h */
|
---|
[1217] | 105 |
|
---|