ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/Daodan/MSYS2/mingw32/i686-w64-mingw32/include/medparam.idl
Revision: 1166
Committed: Tue Oct 26 14:22:36 2021 UTC (4 years ago) by rossy
File size: 3344 byte(s)
Log Message:
Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File Contents

# Content
1 /* This file is part of the KDE project
2 Copyright (C) 2007 Shane King
3
4 This program is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Library General Public
6 License as published by the Free Software Foundation; either
7 version 2 of the License, or (at your option) any later version.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 Library General Public License for more details.
13
14 You should have received a copy of the GNU Library General Public License
15 along with this program; see the file COPYING. If not, write to
16 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17 Boston, MA 02110-1301, USA.
18 */
19
20 import "unknwn.idl";
21 import "strmif.idl";
22
23 typedef DWORD MP_TIMEDATA;
24 typedef DWORD MP_CAPS;
25 typedef DWORD MP_FLAGS;
26 typedef float MP_DATA;
27
28 typedef enum _MP_Type {
29 MPT_INT,
30 MPT_FLOAT,
31 MPT_BOOL,
32 MPT_ENUM,
33 MPT_MAX,
34 } MP_TYPE;
35
36 typedef enum _MP_CURVE_TYPE {
37 MP_CURVE_JUMP = 0x0001,
38 MP_CURVE_LINEAR = 0x0002,
39 MP_CURVE_SQUARE = 0x0004,
40 MP_CURVE_INVSQUARE = 0x0008,
41 MP_CURVE_SINE = 0x0010,
42 } MP_CURVE_TYPE;
43
44 typedef struct _MP_PARAMINFO {
45 MP_TYPE mpType;
46 MP_CAPS mopCaps;
47 MP_DATA mpdMinValue;
48 MP_DATA mpdMaxValue;
49 MP_DATA mpdNeutralValue;
50 WCHAR szUnitText[32];
51 WCHAR szLabel[32];
52 } MP_PARAMINFO;
53
54 typedef struct _MP_ENVELOPE_SEGMENT {
55 REFERENCE_TIME rtStart;
56 REFERENCE_TIME rtEnd;
57 MP_DATA valStart;
58 MP_DATA valEnd;
59 MP_CURVE_TYPE iCurve;
60 MP_FLAGS flags;
61 } MP_ENVELOPE_SEGMENT;
62
63 const MP_CAPS MP_CAPS_CURVE_JUMP = MP_CURVE_JUMP;
64 const MP_CAPS MP_CAPS_CURVE_LINEAR = MP_CURVE_LINEAR;
65 const MP_CAPS MP_CAPS_CURVE_SQUARE = MP_CURVE_SQUARE;
66 const MP_CAPS MP_CAPS_CURVE_INVSQUARE = MP_CURVE_INVSQUARE;
67 const MP_CAPS MP_CAPS_CURVE_SINE = MP_CURVE_SINE;
68
69 [
70 object,
71 uuid(6d6cbb61-a223-44aa-842f-a2f06750be6e)
72 ]
73 interface IMediaParams : IUnknown
74 {
75 HRESULT AddEnvelope(
76 DWORD dwParamIndex,
77 DWORD cPoints,
78 MP_ENVELOPE_SEGMENT *pEnvelope
79 );
80
81 HRESULT FlushEnvelope(
82 DWORD dwParamIndex,
83 REFERENCE_TIME refTimeStart,
84 REFERENCE_TIME refTimeEnd
85 );
86
87 HRESULT GetParam(
88 DWORD dwParamIndex,
89 MP_DATA *pValue
90 );
91
92 HRESULT SetParam(
93 DWORD dwParamIndex,
94 MP_DATA value
95 );
96
97 HRESULT SetTimeFormat(
98 GUID guidTimeFormat,
99 MP_TIMEDATA mpTimeData
100 );
101 }
102
103 [
104 object,
105 uuid(6d6cbb60-a223-44aa-842f-a2f06750be6d)
106 ]
107 interface IMediaParamInfo : IUnknown
108 {
109 HRESULT GetParamCount(
110 DWORD *pdwParams
111 );
112
113 HRESULT GetParamInfo(
114 DWORD dwParamIndex,
115 MP_PARAMINFO *pInfo
116 );
117
118 HRESULT GetParamText(
119 DWORD dwParamIndex,
120 WCHAR **ppwchText
121 );
122
123 HRESULT GetNumTimeFormats(
124 DWORD *pdwNumTimeFormats
125 );
126
127 HRESULT GetSupportedTimeFormat(
128 DWORD dwFormatIndex,
129 GUID *pguidTimeFormat
130 );
131
132 HRESULT GetCurrentTimeFormat(
133 GUID *pguidTimeFormat,
134 MP_TIMEDATA *pTimeData
135 );
136 }