VirtualBox

source: vbox/trunk/src/VBox/Main/include/RecordingScreenSettingsImpl.h@ 86506

Last change on this file since 86506 was 82968, checked in by vboxsync, 4 years ago

Copyright year updates by scm.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 3.8 KB
Line 
1/* $Id: RecordingScreenSettingsImpl.h 82968 2020-02-04 10:35:17Z vboxsync $ */
2
3/** @file
4 *
5 * VirtualBox COM class implementation - Recording settings of one virtual screen.
6 */
7
8/*
9 * Copyright (C) 2018-2020 Oracle Corporation
10 *
11 * This file is part of VirtualBox Open Source Edition (OSE), as
12 * available from http://www.virtualbox.org. This file is free software;
13 * you can redistribute it and/or modify it under the terms of the GNU
14 * General Public License (GPL) as published by the Free Software
15 * Foundation, in version 2 as it comes in the "COPYING" file of the
16 * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
17 * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
18 */
19
20#ifndef MAIN_INCLUDED_RecordingScreenSettingsImpl_h
21#define MAIN_INCLUDED_RecordingScreenSettingsImpl_h
22#ifndef RT_WITHOUT_PRAGMA_ONCE
23# pragma once
24#endif
25
26#include "RecordingScreenSettingsWrap.h"
27
28class RecordingSettings;
29
30namespace settings
31{
32 struct RecordingScreenSettings;
33}
34
35class ATL_NO_VTABLE RecordingScreenSettings :
36 public RecordingScreenSettingsWrap
37{
38public:
39
40 DECLARE_EMPTY_CTOR_DTOR(RecordingScreenSettings)
41
42 HRESULT FinalConstruct();
43 void FinalRelease();
44
45 // public initializer/uninitializer for internal purposes only
46 HRESULT init(RecordingSettings *aParent, uint32_t uScreenId, const settings::RecordingScreenSettings& aThat);
47 HRESULT init(RecordingSettings *aParent, RecordingScreenSettings *aThat);
48 HRESULT initCopy(RecordingSettings *aParent, RecordingScreenSettings *aThat);
49 void uninit();
50
51private:
52
53 // wrapped IRecordingScreenSettings methods
54 HRESULT isFeatureEnabled(RecordingFeature_T aFeature, BOOL *aEnabled);
55
56 // wrapped IRecordingScreenSettings properties
57 HRESULT getId(ULONG *id);
58 HRESULT getEnabled(BOOL *enabled);
59 HRESULT setEnabled(BOOL enabled);
60 HRESULT getFeatures(ULONG *aFeatures);
61 HRESULT setFeatures(ULONG aFeatures);
62 HRESULT getDestination(RecordingDestination_T *aDestination);
63 HRESULT setDestination(RecordingDestination_T aDestination);
64
65 HRESULT getFilename(com::Utf8Str &aFilename);
66 HRESULT setFilename(const com::Utf8Str &aFilename);
67 HRESULT getMaxTime(ULONG *aMaxTimeS);
68 HRESULT setMaxTime(ULONG aMaxTimeS);
69 HRESULT getMaxFileSize(ULONG *aMaxFileSizeMB);
70 HRESULT setMaxFileSize(ULONG aMaxFileSizeMB);
71 HRESULT getOptions(com::Utf8Str &aOptions);
72 HRESULT setOptions(const com::Utf8Str &aOptions);
73
74 HRESULT getAudioCodec(RecordingAudioCodec_T *aCodec);
75 HRESULT setAudioCodec(RecordingAudioCodec_T aCodec);
76 HRESULT getAudioHz(ULONG *aHz);
77 HRESULT setAudioHz(ULONG aHz);
78 HRESULT getAudioBits(ULONG *aBits);
79 HRESULT setAudioBits(ULONG aBits);
80 HRESULT getAudioChannels(ULONG *aChannels);
81 HRESULT setAudioChannels(ULONG aChannels);
82
83 HRESULT getVideoCodec(RecordingVideoCodec_T *aCodec);
84 HRESULT setVideoCodec(RecordingVideoCodec_T aCodec);
85 HRESULT getVideoWidth(ULONG *aVideoWidth);
86 HRESULT setVideoWidth(ULONG aVideoWidth);
87 HRESULT getVideoHeight(ULONG *aVideoHeight);
88 HRESULT setVideoHeight(ULONG aVideoHeight);
89 HRESULT getVideoRate(ULONG *aVideoRate);
90 HRESULT setVideoRate(ULONG aVideoRate);
91 HRESULT getVideoRateControlMode(RecordingVideoRateControlMode_T *aMode);
92 HRESULT setVideoRateControlMode(RecordingVideoRateControlMode_T aMode);
93 HRESULT getVideoFPS(ULONG *aVideoFPS);
94 HRESULT setVideoFPS(ULONG aVideoFPS);
95 HRESULT getVideoScalingMethod(RecordingVideoScalingMethod_T *aMode);
96 HRESULT setVideoScalingMethod(RecordingVideoScalingMethod_T aMode);
97
98private:
99
100 // internal methods
101 int i_initInternal();
102
103private:
104
105 static int i_parseOptionsString(const com::Utf8Str &strOptions, settings::RecordingScreenSettings &screenSettings);
106
107private:
108
109 struct Data;
110 Data *m;
111};
112
113#endif /* !MAIN_INCLUDED_RecordingScreenSettingsImpl_h */
114
Note: See TracBrowser for help on using the repository browser.

© 2023 Oracle
ContactPrivacy policyTerms of Use