[1166] | 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 | }
|
---|