123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- /* 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
- );
- }
|