| /* This file is part of the KDE project |
| Copyright (C) 2007 Shane King |
| |
| This program is free software; you can redistribute it and/or |
| modify it under the terms of the GNU Library General Public |
| License as published by the Free Software Foundation; either |
| version 2 of the License, or (at your option) any later version. |
| |
| This program is distributed in the hope that it will be useful, |
| but WITHOUT ANY WARRANTY; without even the implied warranty of |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| Library General Public License for more details. |
| |
| You should have received a copy of the GNU Library General Public License |
| along with this program; see the file COPYING. If not, write to |
| the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
| Boston, MA 02110-1301, USA. |
| */ |
| |
| import "unknwn.idl"; |
| import "strmif.idl"; |
| |
| typedef DWORD MP_TIMEDATA; |
| typedef DWORD MP_CAPS; |
| typedef DWORD MP_FLAGS; |
| typedef float MP_DATA; |
| |
| typedef enum _MP_Type { |
| MPT_INT, |
| MPT_FLOAT, |
| MPT_BOOL, |
| MPT_ENUM, |
| MPT_MAX, |
| } MP_TYPE; |
| |
| typedef enum _MP_CURVE_TYPE { |
| MP_CURVE_JUMP = 0x0001, |
| MP_CURVE_LINEAR = 0x0002, |
| MP_CURVE_SQUARE = 0x0004, |
| MP_CURVE_INVSQUARE = 0x0008, |
| MP_CURVE_SINE = 0x0010, |
| } MP_CURVE_TYPE; |
| |
| typedef struct _MP_PARAMINFO { |
| MP_TYPE mpType; |
| MP_CAPS mopCaps; |
| MP_DATA mpdMinValue; |
| MP_DATA mpdMaxValue; |
| MP_DATA mpdNeutralValue; |
| WCHAR szUnitText[32]; |
| WCHAR szLabel[32]; |
| } MP_PARAMINFO; |
| |
| typedef struct _MP_ENVELOPE_SEGMENT { |
| REFERENCE_TIME rtStart; |
| REFERENCE_TIME rtEnd; |
| MP_DATA valStart; |
| MP_DATA valEnd; |
| MP_CURVE_TYPE iCurve; |
| MP_FLAGS flags; |
| } MP_ENVELOPE_SEGMENT; |
| |
| const MP_CAPS MP_CAPS_CURVE_JUMP = MP_CURVE_JUMP; |
| const MP_CAPS MP_CAPS_CURVE_LINEAR = MP_CURVE_LINEAR; |
| const MP_CAPS MP_CAPS_CURVE_SQUARE = MP_CURVE_SQUARE; |
| const MP_CAPS MP_CAPS_CURVE_INVSQUARE = MP_CURVE_INVSQUARE; |
| const MP_CAPS MP_CAPS_CURVE_SINE = MP_CURVE_SINE; |
| |
| [ |
| object, |
| uuid(6d6cbb61-a223-44aa-842f-a2f06750be6e) |
| ] |
| interface IMediaParams : IUnknown |
| { |
| HRESULT AddEnvelope( |
| DWORD dwParamIndex, |
| DWORD cPoints, |
| MP_ENVELOPE_SEGMENT *pEnvelope |
| ); |
| |
| HRESULT FlushEnvelope( |
| DWORD dwParamIndex, |
| REFERENCE_TIME refTimeStart, |
| REFERENCE_TIME refTimeEnd |
| ); |
| |
| HRESULT GetParam( |
| DWORD dwParamIndex, |
| MP_DATA *pValue |
| ); |
| |
| HRESULT SetParam( |
| DWORD dwParamIndex, |
| MP_DATA value |
| ); |
| |
| HRESULT SetTimeFormat( |
| GUID guidTimeFormat, |
| MP_TIMEDATA mpTimeData |
| ); |
| } |
| |
| [ |
| object, |
| uuid(6d6cbb60-a223-44aa-842f-a2f06750be6d) |
| ] |
| interface IMediaParamInfo : IUnknown |
| { |
| HRESULT GetParamCount( |
| DWORD *pdwParams |
| ); |
| |
| HRESULT GetParamInfo( |
| DWORD dwParamIndex, |
| MP_PARAMINFO *pInfo |
| ); |
| |
| HRESULT GetParamText( |
| DWORD dwParamIndex, |
| WCHAR **ppwchText |
| ); |
| |
| HRESULT GetNumTimeFormats( |
| DWORD *pdwNumTimeFormats |
| ); |
| |
| HRESULT GetSupportedTimeFormat( |
| DWORD dwFormatIndex, |
| GUID *pguidTimeFormat |
| ); |
| |
| HRESULT GetCurrentTimeFormat( |
| GUID *pguidTimeFormat, |
| MP_TIMEDATA *pTimeData |
| ); |
| } |