mirror of
https://github.com/QB64Official/qb64.git
synced 2024-08-22 02:05:08 +00:00
136 lines
3.3 KiB
Text
136 lines
3.3 KiB
Text
/* 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
|
|
);
|
|
}
|