Banuba SDK
BNBEffectManager.h
Go to the documentation of this file.
1 // AUTOGENERATED FILE - DO NOT MODIFY!
2 // This file was generated by Djinni from effect_player.djinni
3 
4 #import "BNBEffectInfo.h"
5 #import "BNBSize.h"
6 #import "BNBSurfaceData.h"
7 #import <Foundation/Foundation.h>
8 @class BNBEffect;
9 @class BNBReloadResult;
11 @protocol BNBEffectEventListener;
12 @protocol BNBErrorListener;
13 @protocol BNBHintListener;
14 
15 
16 
17 #ifndef DJINNI_EXPORT
18  #define DJINNI_EXPORT __attribute__((__visibility__("default")))
19 #endif
20 
22 @interface BNBEffectManager : NSObject
23 
24 /**
25  * Add callback to receive errors messages from Effect Player.
26  * Thread-safe. May be called from any thread
27  */
28 - (void)addErrorListener:(nullable id<BNBErrorListener>)errorListener;
29 
30 /**
31  * Remove callback to receive errors messages from Effect Player.
32  * Thread-safe. May be called from any thread
33  */
34 - (void)removeErrorListener:(nullable id<BNBErrorListener>)errorListener;
35 
36 /**
37  * Add callback to receive user-visible messages from effects.
38  * You should display them on UI.
39  * Thread-safe. May be called from any thread
40  */
41 - (void)addHintListener:(nullable id<BNBHintListener>)hintListener;
42 
43 /**
44  * Remove callback to receive user-visible messages from effects.
45  * Thread-safe. May be called from any thread
46  */
47 - (void)removeHintListener:(nullable id<BNBHintListener>)hintListener;
48 
49 /**
50  * Add callback to receive events from effect.
51  * Thread-safe. May be called from any thread
52  */
53 - (void)addEffectEventListener:(nullable id<BNBEffectEventListener>)effectEventListener;
54 
55 /**
56  * Remove callback to receive events from effect.
57  * Thread-safe. May be called from any thread
58  */
59 - (void)removeEffectEventListener:(nullable id<BNBEffectEventListener>)effectEventListener;
60 
61 /**
62  * Add callback to receive notifications on effect change.
63  * Thread-safe. May be called from any thread
64  */
65 - (void)addEffectActivatedListener:(nullable id<BNBEffectActivatedListener>)effectActivatedListener;
66 
67 /**
68  * Remove callback to receive notifications on effect change.
69  * Thread-safe. May be called from any thread
70  */
71 - (void)removeEffectActivatedListener:(nullable id<BNBEffectActivatedListener>)effectActivatedListener;
72 
73 /** Create empty effect. If working directory path is empty string then effect assumed as an in-memory effect. */
74 - (nullable BNBEffect *)createEffect:(nonnull NSString *)workDir;
75 
76 /**
77  * Set current effect.
78  * Thread-safe. May be called from any thread
79  */
80 - (void)setCurrentEffect:(nullable BNBEffect *)effect;
81 
82 /**
83  * Load and activate effect sync.
84  * MUST be called from the render thread.
85  */
86 - (nullable BNBEffect *)load:(nonnull NSString *)url;
87 
88 /**
89  * Load effect async, activate in the draw() call when it will be ready.
90  * Thread-safe. May be called from any thread.
91  */
92 - (nullable BNBEffect *)loadAsync:(nonnull NSString *)url;
93 
94 /**
95  * Reload current effect config from the string provided. If this reload
96  * is possible without effect recreation, this method will return `hot_reload == true`,
97  * otherwise `current` effect will be replaced and the method will return
98  * `hot_reload == false`.
99  *
100  * Thread-safe. May be called from any thread.
101  */
102 - (nullable BNBReloadResult *)reloadConfig:(nonnull NSString *)config;
103 
104 /**
105  * Get effect info. May be called before loading effect
106  * "render type" and "recognizer features" fields won't be filled
107  * Thread-safe. May be called from any thread
108  */
109 + (nonnull BNBEffectInfo *)getEffectInfo:(nonnull NSString *)url;
110 
111 /**
112  * Unload effect from cache. if no currently loading effect -
113  * works the same way as load(""); launches empty effect loading.
114  * MUST be called from the render thread
115  */
116 - (void)unload:(nullable BNBEffect *)effect;
117 
118 /**
119  * Get active effect
120  * Thread-safe. May be called from any thread
121  */
122 - (nullable BNBEffect *)current;
123 
124 /**
125  * Update effect loading state
126  * @param sync syncronize effect manager, block until effect loaded
127  * MUST be called from the render thread
128  */
129 - (void)update:(BOOL)sync;
130 
131 /**
132  * Get current effect size
133  * Thread-safe. May be called from any thread
134  */
135 - (nonnull BNBSize *)effectSize;
136 
137 /**
138  * Get current surface size
139  * Thread-safe. May be called from any thread
140  */
141 - (nonnull BNBSize *)surfaceSize;
142 
143 /**
144  * Get effect audio volume.
145  * Thread-safe. May be called from any thread
146  * @return A volume in range `[0, 1]`, where `1` means maximum volume.
147  */
148 - (float)effectVolume;
149 
150 /**
151  * Set effect audio volume.
152  * Thread-safe. May be called from any thread
153  * @param volume A value in range `[0, 1]`, where `1` means maximum volume.
154  */
155 - (void)setEffectVolume:(float)volume;
156 
157 /**
158  * Changes effect player render size, should be called on render thread.
159  * MUST be called from the render thread
160  */
161 - (void)setEffectSize:(int32_t)fxWidth
162  fxHeight:(int32_t)fxHeight;
163 
164 /** set different render surfaces. Can be treated as void* */
165 - (void)setRenderSurface:(nonnull BNBSurfaceData *)data;
166 
167 /** disable surface presentation. Needed for offscreen rendering */
169 
170 @end
BNBHintListener-p
Callback to receive "hints" (e.g.
Definition: BNBHintListener.h:11
-[BNBEffectManager effectVolume]
float effectVolume()
Get effect audio volume.
-[BNBEffectManager effectSize]
nonnull BNBSize * effectSize()
Get current effect size Thread-safe.
-[BNBEffectManager surfaceSize]
nonnull BNBSize * surfaceSize()
Get current surface size Thread-safe.
BNBSize.h
BNBSize
Definition: BNBSize.h:12
BNBEffectInfo
Definition: BNBEffectInfo.h:13
BNBSurfaceData.h
-[BNBEffectManager current]
nullable BNBEffect * current()
Get active effect Thread-safe.
BNBEffect
Definition: BNBEffect.h:16
DJINNI_EXPORT
#define DJINNI_EXPORT
for order of values in action units array see action_units_indices enum
Definition: BNBActionUnits.h:9
BNBEffectInfo.h
BNBEffectManager
Definition: BNBEffectManager.h:22
BNBErrorListener-p
Interface to receive errors from EffectPlayer.
Definition: BNBErrorListener.h:11
BNBReloadResult
Definition: BNBReloadResult.h:15
BNBEffectEventListener-p
Callback interface for effect events.
Definition: BNBEffectEventListener.h:8
BNBEffectActivatedListener-p
Interface to receive notifications on effect change.
Definition: BNBEffectActivatedListener.h:8
-[BNBEffectManager disableSurfacePresentation]
void disableSurfacePresentation()
disable surface presentation.
BNBSurfaceData
Definition: BNBSurfaceData.h:13