Zhiyi Zhang : include: Add IMediaParams definitions.
Alexandre Julliard
julliard at winehq.org
Wed Aug 10 14:53:20 CDT 2022
Module: wine
Branch: master
Commit: bc712170a5bd514e32ac47de8607b4a1640e1145
URL: https://gitlab.winehq.org/wine/wine/-/commit/bc712170a5bd514e32ac47de8607b4a1640e1145
Author: Zhiyi Zhang <zzhang at codeweavers.com>
Date: Tue Jul 26 15:01:08 2022 +0800
include: Add IMediaParams definitions.
Signed-off-by: Zhiyi Zhang <zzhang at codeweavers.com>
---
include/medparam.idl | 39 ++++++++++++++++++++++++++++++++++++++-
1 file changed, 38 insertions(+), 1 deletion(-)
diff --git a/include/medparam.idl b/include/medparam.idl
index f3b7f2f463e..f32dd49827d 100644
--- a/include/medparam.idl
+++ b/include/medparam.idl
@@ -16,10 +16,11 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
-import "unknwn.idl";
+import "strmif.idl";
typedef float MP_DATA;
typedef DWORD MP_CAPS;
+typedef DWORD MP_FLAGS;
typedef DWORD MP_TIMEDATA;
typedef enum _MP_Type
@@ -42,6 +43,28 @@ typedef struct _MP_PARAMINFO
WCHAR szLabel[32];
} MP_PARAMINFO;
+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;
+
+const MP_FLAGS MPF_ENVLP_STANDARD = 0x0000;
+const MP_FLAGS MPF_ENVLP_BEGIN_CURRENTVAL = 0x0001;
+const MP_FLAGS MPF_ENVLP_BEGIN_NEUTRALVAL = 0x0002;
+
+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;
+
[
object,
uuid(6D6CBB60-A223-44AA-842F-A2F06750BE6D),
@@ -56,3 +79,17 @@ interface IMediaParamInfo : IUnknown
HRESULT GetSupportedTimeFormat([in] DWORD index, [out] GUID *guid);
HRESULT GetCurrentTimeFormat([out] GUID *guid, [out] MP_TIMEDATA *time_data);
}
+
+[
+object,
+uuid(6d6cbb61-a223-44aa-842f-a2f06750be6e),
+version(1.0)
+]
+interface IMediaParams : IUnknown
+{
+ HRESULT GetParam([in] DWORD index, [out] MP_DATA *data);
+ HRESULT SetParam([in] DWORD index, [in] MP_DATA data);
+ HRESULT AddEnvelope([in] DWORD index, [in] DWORD count, [in] MP_ENVELOPE_SEGMENT *segments);
+ HRESULT FlushEnvelope([in] DWORD index, [in] REFERENCE_TIME start, [in] REFERENCE_TIME end);
+ HRESULT SetTimeFormat([in] GUID guid, [in] MP_TIMEDATA time_data);
+}
More information about the wine-cvs
mailing list