source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/medparam.idl@ 1180

Last change on this file since 1180 was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 3.3 KB
Line 
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
20import "unknwn.idl";
21import "strmif.idl";
22
23typedef DWORD MP_TIMEDATA;
24typedef DWORD MP_CAPS;
25typedef DWORD MP_FLAGS;
26typedef float MP_DATA;
27
28typedef enum _MP_Type {
29 MPT_INT,
30 MPT_FLOAT,
31 MPT_BOOL,
32 MPT_ENUM,
33 MPT_MAX,
34} MP_TYPE;
35
36typedef 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
44typedef 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
54typedef 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
63const MP_CAPS MP_CAPS_CURVE_JUMP = MP_CURVE_JUMP;
64const MP_CAPS MP_CAPS_CURVE_LINEAR = MP_CURVE_LINEAR;
65const MP_CAPS MP_CAPS_CURVE_SQUARE = MP_CURVE_SQUARE;
66const MP_CAPS MP_CAPS_CURVE_INVSQUARE = MP_CURVE_INVSQUARE;
67const MP_CAPS MP_CAPS_CURVE_SINE = MP_CURVE_SINE;
68
69[
70 object,
71 uuid(6d6cbb61-a223-44aa-842f-a2f06750be6e)
72]
73interface 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]
107interface 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}
Note: See TracBrowser for help on using the repository browser.