VirtualBox

source: vbox/trunk/src/VBox/Main/include/AudioAdapterImpl.h@ 96407

Last change on this file since 96407 was 96407, checked in by vboxsync, 2 years ago

scm copyright and license note update

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.9 KB
Line 
1/* $Id: AudioAdapterImpl.h 96407 2022-08-22 17:43:14Z vboxsync $ */
2
3/** @file
4 *
5 * VirtualBox COM class implementation
6 */
7
8/*
9 * Copyright (C) 2006-2022 Oracle and/or its affiliates.
10 *
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
28 */
29
30#ifndef MAIN_INCLUDED_AudioAdapterImpl_h
31#define MAIN_INCLUDED_AudioAdapterImpl_h
32#ifndef RT_WITHOUT_PRAGMA_ONCE
33# pragma once
34#endif
35
36class AudioSettings;
37
38#include "AudioAdapterWrap.h"
39namespace settings
40{
41 struct AudioAdapter;
42}
43
44class ATL_NO_VTABLE AudioAdapter :
45 public AudioAdapterWrap
46{
47public:
48
49 DECLARE_COMMON_CLASS_METHODS (AudioAdapter)
50
51 HRESULT FinalConstruct();
52 void FinalRelease();
53
54 // public initializer/uninitializer for internal purposes only
55 HRESULT init(AudioSettings *aParent);
56 HRESULT init(AudioSettings *aParent, AudioAdapter *aThat);
57 HRESULT initCopy(AudioSettings *aParent, AudioAdapter *aThat);
58 void uninit();
59
60 // public methods only for internal purposes
61 HRESULT i_loadSettings(const settings::AudioAdapter &data);
62 HRESULT i_saveSettings(settings::AudioAdapter &data);
63
64 void i_rollback();
65 void i_commit();
66 void i_copyFrom(AudioAdapter *aThat);
67
68private:
69
70 // wrapped IAudioAdapter properties
71 HRESULT getEnabled(BOOL *aEnabled);
72 HRESULT setEnabled(BOOL aEnabled);
73 HRESULT getEnabledIn(BOOL *aEnabled);
74 HRESULT setEnabledIn(BOOL aEnabled);
75 HRESULT getEnabledOut(BOOL *aEnabled);
76 HRESULT setEnabledOut(BOOL aEnabled);
77 HRESULT getAudioDriver(AudioDriverType_T *aAudioDriver);
78 HRESULT setAudioDriver(AudioDriverType_T aAudioDriver);
79 HRESULT getAudioController(AudioControllerType_T *aAudioController);
80 HRESULT setAudioController(AudioControllerType_T aAudioController);
81 HRESULT getAudioCodec(AudioCodecType_T *aAudioCodec);
82 HRESULT setAudioCodec(AudioCodecType_T aAudioCodec);
83 HRESULT getPropertiesList(std::vector<com::Utf8Str>& aProperties);
84 HRESULT getProperty(const com::Utf8Str &aKey, com::Utf8Str &aValue);
85 HRESULT setProperty(const com::Utf8Str &aKey, const com::Utf8Str &aValue);
86
87 AudioSettings * const mParent;
88 const ComObjPtr<AudioAdapter> mPeer;
89 Backupable<settings::AudioAdapter> mData;
90};
91
92#endif /* !MAIN_INCLUDED_AudioAdapterImpl_h */
93/* vi: set tabstop=4 shiftwidth=4 expandtab: */
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette