blob: 427b61db852885ccef074422a67fd9ede658d84e [file] [log] [blame]
Bob Badour07562132020-05-20 13:18:00 +00001//
2// Copyright (C) 2020 The Android Open Source Project
3//
4// Licensed under the Apache License, Version 2.0 (the "License");
5// you may not use this file except in compliance with the License.
6// You may obtain a copy of the License at
7//
8// http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13// See the License for the specific language governing permissions and
14// limitations under the License.
15//
16
17// clang-format off
18#include "native_bridge_support/vdso/interceptable_functions.h"
19
20DEFINE_INTERCEPTABLE_STUB_FUNCTION(slCreateEngine);
21DEFINE_INTERCEPTABLE_STUB_FUNCTION(slQueryNumSupportedEngineInterfaces);
22DEFINE_INTERCEPTABLE_STUB_FUNCTION(slQuerySupportedEngineInterfaces);
23DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_3DCOMMIT);
24DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_3DDOPPLER);
25DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_3DGROUPING);
26DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_3DLOCATION);
27DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_3DMACROSCOPIC);
28DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_3DSOURCE);
29DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_ANDROIDACOUSTICECHOCANCELLATION);
30DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_ANDROIDAUTOMATICGAINCONTROL);
31DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_ANDROIDBUFFERQUEUESOURCE);
32DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_ANDROIDCONFIGURATION);
33DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_ANDROIDEFFECT);
34DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_ANDROIDEFFECTCAPABILITIES);
35DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_ANDROIDEFFECTSEND);
36DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_ANDROIDNOISESUPPRESSION);
37DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_ANDROIDSIMPLEBUFFERQUEUE);
38DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_AUDIODECODERCAPABILITIES);
39DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_AUDIOENCODER);
40DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_AUDIOENCODERCAPABILITIES);
41DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_AUDIOIODEVICECAPABILITIES);
42DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_BASSBOOST);
43DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_BUFFERQUEUE);
44DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_DEVICEVOLUME);
45DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_DYNAMICINTERFACEMANAGEMENT);
46DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_DYNAMICSOURCE);
47DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_EFFECTSEND);
48DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_ENGINE);
49DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_ENGINECAPABILITIES);
50DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_ENVIRONMENTALREVERB);
51DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_EQUALIZER);
52DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_LED);
53DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_METADATAEXTRACTION);
54DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_METADATATRAVERSAL);
55DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_MIDIMESSAGE);
56DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_MIDIMUTESOLO);
57DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_MIDITEMPO);
58DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_MIDITIME);
59DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_MUTESOLO);
60DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_NULL);
61DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_OBJECT);
62DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_OUTPUTMIX);
63DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_PITCH);
64DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_PLAY);
65DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_PLAYBACKRATE);
66DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_PREFETCHSTATUS);
67DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_PRESETREVERB);
68DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_RATEPITCH);
69DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_RECORD);
70DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_SEEK);
71DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_THREADSYNC);
72DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_VIBRA);
73DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_VIRTUALIZER);
74DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_VISUALIZATION);
75DEFINE_INTERCEPTABLE_STUB_VARIABLE(SL_IID_VOLUME);
76
77static void __attribute__((constructor(0))) init_stub_library() {
78 INIT_INTERCEPTABLE_STUB_FUNCTION("libOpenSLES.so", slCreateEngine);
79 INIT_INTERCEPTABLE_STUB_FUNCTION("libOpenSLES.so", slQueryNumSupportedEngineInterfaces);
80 INIT_INTERCEPTABLE_STUB_FUNCTION("libOpenSLES.so", slQuerySupportedEngineInterfaces);
81 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_3DCOMMIT);
82 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_3DDOPPLER);
83 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_3DGROUPING);
84 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_3DLOCATION);
85 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_3DMACROSCOPIC);
86 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_3DSOURCE);
87 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_ANDROIDACOUSTICECHOCANCELLATION);
88 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_ANDROIDAUTOMATICGAINCONTROL);
89 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_ANDROIDBUFFERQUEUESOURCE);
90 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_ANDROIDCONFIGURATION);
91 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_ANDROIDEFFECT);
92 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_ANDROIDEFFECTCAPABILITIES);
93 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_ANDROIDEFFECTSEND);
94 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_ANDROIDNOISESUPPRESSION);
95 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_ANDROIDSIMPLEBUFFERQUEUE);
96 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_AUDIODECODERCAPABILITIES);
97 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_AUDIOENCODER);
98 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_AUDIOENCODERCAPABILITIES);
99 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_AUDIOIODEVICECAPABILITIES);
100 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_BASSBOOST);
101 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_BUFFERQUEUE);
102 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_DEVICEVOLUME);
103 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_DYNAMICINTERFACEMANAGEMENT);
104 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_DYNAMICSOURCE);
105 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_EFFECTSEND);
106 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_ENGINE);
107 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_ENGINECAPABILITIES);
108 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_ENVIRONMENTALREVERB);
109 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_EQUALIZER);
110 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_LED);
111 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_METADATAEXTRACTION);
112 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_METADATATRAVERSAL);
113 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_MIDIMESSAGE);
114 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_MIDIMUTESOLO);
115 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_MIDITEMPO);
116 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_MIDITIME);
117 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_MUTESOLO);
118 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_NULL);
119 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_OBJECT);
120 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_OUTPUTMIX);
121 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_PITCH);
122 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_PLAY);
123 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_PLAYBACKRATE);
124 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_PREFETCHSTATUS);
125 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_PRESETREVERB);
126 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_RATEPITCH);
127 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_RECORD);
128 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_SEEK);
129 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_THREADSYNC);
130 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_VIBRA);
131 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_VIRTUALIZER);
132 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_VISUALIZATION);
133 INIT_INTERCEPTABLE_STUB_VARIABLE("libOpenSLES.so", SL_IID_VOLUME);
134}
135// clang-format on