Mach1 Spatial SDK
Loading...
Searching...
No Matches
Mach1EncodeCAPI.h
1// Mach1 Spatial SDK
2// Copyright © 2017 Mach1. All rights reserved.
3
4#pragma once
5
6#ifdef M1ENCODE_INLINE_DECODE
7# include "Mach1DecodeCAPI.h"
8#endif
9#include "Mach1Point3D.h"
10#include "Mach1Point4D.h"
11
12#if defined(Mach1DecodeCore_h) || defined(Mach1EncodeCore_h) || defined(Mach1PositionalCore_h) || defined(Mach1TranscodeCore_h) || defined(Mach1AudioTimelineCore_h)
13# ifndef M1_API
14# if defined(_WINDOWS) || defined(_WIN32)
15# define M1_API __declspec(dllexport)
16# else
17# define M1_API
18# endif
19# endif
20#else
21# ifndef M1_API
22# if !defined(M1_STATIC) && (defined(_WINDOWS) || defined(_WIN32))
23# define M1_API __declspec(dllimport)
24# else
25# define M1_API
26# endif
27# endif
28#endif
29
30enum Mach1EncodeInputMode {
31 Mono = (int)0,
32 Stereo,
33 LCR,
34 Quad,
35 LCRS,
36 AFormat,
37 FiveDotZero,
38 FiveDotOneFilm,
39 FiveDotOneDTS,
40 FiveDotOneSMTPE,
41 BFOAACN,
42 BFOAFUMA,
43 B2OAACN,
44 B2OAFUMA,
45 B3OAACN,
46 B3OAFUMA
47};
48
49enum Mach1EncodeOutputMode {
50 M1Spatial_4 = (int)0,
51 M1Spatial_8,
52 M1Spatial_14
53};
54
55enum Mach1EncodePannerMode {
56 IsotropicLinear = (int)0,
57 IsotropicEqualPower,
58 PeriphonicLinear
59};
60
61#ifdef __cplusplus
62extern "C" {
63#endif
64M1_API void *Mach1EncodeCAPI_create();
65M1_API void Mach1EncodeCAPI_copy(void *M1str, void *M1dst);
66M1_API void Mach1EncodeCAPI_delete(void *M1obj);
67
68M1_API void *Mach1EncodeCAPI_getPoints(void *M1obj);
69M1_API void *Mach1EncodeCAPI_getGains(void *M1obj);
70M1_API void *Mach1EncodeCAPI_getPointsNames(void *M1obj);
71M1_API void *Mach1EncodeCAPI_getGainsForInputChannelNamed(void *M1obj, char *pointName);
72
73M1_API void Mach1EncodeCAPI_generatePointResults(void *M1obj);
74M1_API int Mach1EncodeCAPI_getPointsCount(void *M1obj);
75
76#ifdef M1ENCODE_INLINE_DECODE
77M1_API void *Mach1EncodeCAPI_getResultingCoeffsDecoded(void *M1obj, enum Mach1DecodeMode decodeMode, float *decodeResult);
78#endif
79
80M1_API enum Mach1EncodeInputMode Mach1EncodeCAPI_getInputMode(void *M1obj);
81M1_API enum Mach1EncodeOutputMode Mach1EncodeCAPI_getOutputMode(void *M1obj);
82M1_API enum Mach1EncodePannerMode Mach1EncodeCAPI_getPannerMode(void *M1obj);
83M1_API bool Mach1EncodeCAPI_getAutoOrbit(void *M1obj);
84M1_API int Mach1EncodeCAPI_getInputChannelsCount(void *M1obj);
85M1_API int Mach1EncodeCAPI_getOutputChannelsCount(void *M1obj);
86
87M1_API void Mach1EncodeCAPI_setInputMode(void *M1obj, enum Mach1EncodeInputMode inputMode);
88M1_API void Mach1EncodeCAPI_setOutputMode(void *M1obj, enum Mach1EncodeOutputMode outputMode);
89
90M1_API void Mach1EncodeCAPI_setAzimuth(void *M1obj, float azimuthFromMinus1To1);
91M1_API void Mach1EncodeCAPI_setAzimuthDegrees(void *M1obj, float azimuthDegrees);
92M1_API void Mach1EncodeCAPI_setAzimuthRadians(void *M1obj, float azimuthRadians);
93
94M1_API void Mach1EncodeCAPI_setDiverge(void *M1obj, float divergeFromMinus1To1);
95
96M1_API void Mach1EncodeCAPI_setElevation(void *M1obj, float elevationFromMinus1to1);
97M1_API void Mach1EncodeCAPI_setElevationDegrees(void *M1obj, float elevationFromMinus90to90);
98M1_API void Mach1EncodeCAPI_setElevationRadians(void *M1obj, float elevationFromMinusHalfPItoHalfPI);
99
100M1_API void Mach1EncodeCAPI_setPannerMode(void *M1obj, enum Mach1EncodePannerMode pannerMode);
101M1_API void Mach1EncodeCAPI_setFrontSurroundPerspective(void *M1obj, bool frontSurroundPerspective);
102
103M1_API float Mach1EncodeCAPI_getOutputGain(void *M1obj, bool isDecibel);
104M1_API void Mach1EncodeCAPI_setOutputGain(void *M1obj, float outputGainMultipler, bool isDecibel);
105
106M1_API float Mach1EncodeCAPI_getGainCompensation(void *M1obj, bool isDecibel);
107M1_API bool Mach1EncodeCAPI_getGainCompensationActive(void *M1obj);
108M1_API void Mach1EncodeCAPI_setGainCompensationActive(void *M1obj, bool active);
109
110M1_API void Mach1EncodeCAPI_setAutoOrbit(void *M1obj, bool autoOrbit);
111M1_API void Mach1EncodeCAPI_setOrbitRotation(void *M1obj, float orbitRotationFromMinusOnetoOne);
112M1_API void Mach1EncodeCAPI_setOrbitRotationDegrees(void *M1obj, float orbitRotationDegrees);
113M1_API void Mach1EncodeCAPI_setOrbitRotationRadians(void *M1obj, float orbitRotationRadians);
114M1_API void Mach1EncodeCAPI_setStereoSpread(void *M1obj, float sSpreadFrom0to1);
115
116M1_API long Mach1EncodeCAPI_getLastCalculationTime(void *M1obj);
117
118#ifdef __cplusplus
119}
120#endif