ZFFramework
 
Loading...
Searching...
No Matches
ZFAudio.h
Go to the documentation of this file.
1
5
6#ifndef _ZFI_ZFAudio_h_
7#define _ZFI_ZFAudio_h_
8
9#include "ZFUITypeDef.h"
11
12zfclassFwd _ZFP_ZFAudioPrivate;
25zfclass ZFLIB_ZFUIKit ZFAudio : zfextend ZFStyle, zfimplement ZFTaskId {
26 ZFOBJECT_DECLARE(ZFAudio, ZFStyle)
27 ZFIMPLEMENT_DECLARE(ZFTaskId)
28
29public:
30 // ============================================================
31 // events
39 ZFEVENT(AudioOnLoad)
45 ZFEVENT(AudioOnStart)
53 ZFEVENT(AudioOnStop)
60 ZFEVENT(AudioOnResume)
66 ZFEVENT(AudioOnPause)
72 ZFEVENT(AudioOnLoop)
73
74 // ============================================================
75public:
78
81
82public:
85
88
91
94
97
100
101public:
104 , ZFMP_IN(const ZFPathInfo &, pathInfo)
106
109 , ZFMP_IN(const ZFInput &, input)
111
120
123
126
129
136
139
151
155
161
164
167
170
171protected:
176protected:
178 virtual void objectOnInit(void);
180 virtual void objectOnDealloc(void);
183
186 ZF_IN const ZFSerializableData &serializableData
187 , ZF_OUT_OPT zfstring *outErrorHint = zfnull
188 , ZF_OUT_OPT ZFSerializableData *outErrorPos = zfnull
189 );
192 ZF_IN_OUT ZFSerializableData &serializableData
193 , ZF_OUT_OPT zfstring *outErrorHint = zfnull
194 , ZF_IN_OPT ZFSerializable *refOwner = zfnull
195 );
196
197protected:
199 virtual void audioOnLoad(
200 ZF_IN ZFResultType result
201 , ZF_IN v_zfstring *errorHint
202 ) {
203 zfobj<v_ZFResultType> resultHolder;
204 resultHolder->enumValue(result);
205 this->observerNotify(ZFAudio::E_AudioOnLoad(), resultHolder, errorHint);
206 }
207
208 virtual void audioOnStart(void) {
210 }
211
212 virtual void audioOnStop(
213 ZF_IN ZFResultType result
214 , ZF_IN v_zfstring *errorHint
215 ) {
216 zfobj<v_ZFResultType> resultHolder;
217 resultHolder->enumValue(result);
218 this->observerNotify(ZFAudio::E_AudioOnStop(), resultHolder, errorHint);
219 }
220
221 virtual void audioOnResume(void) {
223 }
224
225 virtual void audioOnPause(void) {
227 }
228
229 virtual void audioOnLoop(void) {
231 }
232
233public:
234 zffinal void _ZFP_ZFAudio_OnLoad(
235 ZF_IN ZFResultType result
236 , ZF_IN v_zfstring *errorHint
237 );
238 zffinal void _ZFP_ZFAudio_OnStop(
239 ZF_IN ZFResultType result
240 , ZF_IN v_zfstring *errorHint
241 );
242 zffinal void _ZFP_ZFAudio_OnResume(void);
243 zffinal void _ZFP_ZFAudio_OnPause(void);
244private:
245 _ZFP_ZFAudioPrivate *d;
246};
247
249#endif // #ifndef _ZFI_ZFAudio_h_
250
_ZFT_t_zfchar zfchar
char wrapper
Definition ZFCoreTypeDef_CharType.h:17
#define ZF_OUT_OPT
dummy macro that shows the param used as optional output
Definition ZFCoreTypeDef_ClassType.h:196
#define zffinal
dummy macro shows that a method or class is designed must not to be overrided
Definition ZFCoreTypeDef_ClassType.h:63
#define zfextend
dummy macro shows class inherit from another
Definition ZFCoreTypeDef_ClassType.h:53
#define zfoverride
dummy macro shows that method override parent's method
Definition ZFCoreTypeDef_ClassType.h:58
#define ZF_IN
dummy macro that shows the param used as required input
Definition ZFCoreTypeDef_ClassType.h:184
#define ZF_IN_OPT
dummy macro that shows the param used as optional input
Definition ZFCoreTypeDef_ClassType.h:188
#define ZF_IN_OUT
dummy macro that shows the param used as required input and output
Definition ZFCoreTypeDef_ClassType.h:200
#define zfclassFwd
forward declaration of a class type
Definition ZFCoreTypeDef_ClassType.h:31
_ZFT_t_zfbool zfbool
bool type
Definition ZFCoreTypeDef_CoreType.h:103
_ZFT_t_zfindex zfindex
similar to size_t, used for index and size only
Definition ZFCoreTypeDef_CoreType.h:154
_zft_zftimet zftimet
time unit, ensured at least 64 bit, ensured signed
Definition ZFCoreTypeDef_CoreType.h:203
_zft_zfidentity zfidentity
identity type, ensured at least 32 bit, ensured unsigned
Definition ZFCoreTypeDef_CoreType.h:225
_zft_zffloat zffloat
same as float, see zfindex
Definition ZFCoreTypeDef_CoreType.h:183
#define zfnull
same as NULL, defined for future use
Definition ZFCoreTypeDef_CoreType.h:88
zft_zfstring< zfchar > zfstring
see zft_zfstring
Definition ZFCoreTypeDef_StringType.h:15
#define ZFMP_IN(ParamType, paramName)
macro to wrap param types for ZFMETHOD_INLINE_0 series
Definition ZFMethod.h:105
#define ZFMETHOD_DECLARE_0(ReturnType, MethodName)
see ZFMethod
Definition ZFMethodDeclare.h:693
#define ZFMETHOD_DECLARE_STATIC_0(ReturnType, MethodName)
see ZFMethod
Definition ZFMethodDeclare.h:708
#define ZFMETHOD_DECLARE_1(ReturnType, MethodName, ZFMP_0)
see ZFMethod
Definition ZFMethodDeclare.h:854
#define ZF_NAMESPACE_GLOBAL_BEGIN
begin namespace ZFFramework
Definition ZFNamespace.h:97
#define ZF_NAMESPACE_GLOBAL_END
end namespace ZFFramework
Definition ZFNamespace.h:98
#define zfclass
same as class, shows that this class is a ZFObject type
Definition ZFObjectClassTypeFwd.h:38
#define ZFOBJECT_ON_INIT_DECLARE_1(ZFMP_0)
see ZFOBJECT_ON_INIT_INLINE_1
Definition ZFObjectDeclare.h:263
#define ZFOBJECT_DECLARE(ChildClass, SuperClass,...)
necessary for every class inherit from ZFObject
Definition ZFObjectDeclare.h:126
#define ZFIMPLEMENT_DECLARE(ImplementedInterfaces,...)
see ZFINTERFACE_DECLARE
Definition ZFObjectInterface.h:169
#define zfimplement
shows class implement from interface, see ZFInterface
Definition ZFObjectInterface.h:24
#define ZFEVENT(YourEvent)
see ZFObject::observerNotify
Definition ZFObjectObserver.h:310
#define ZFPROPERTY_ASSIGN(Type, Name,...)
see ZFPROPERTY_RETAIN
Definition ZFPropertyDeclare.h:128
#define ZFPROPERTY_ON_ATTACH_DECLARE(Type, Name)
see ZFPROPERTY_ON_INIT_DECLARE
Definition ZFPropertyDeclare.h:248
v_ZFResultType::ZFEnumType ZFResultType
see v_ZFResultType
Definition ZFResultType.h:23
#define ZFLIB_ZFUIKit
used to export symbols
Definition ZFUIKitDef.h:16
necessary header file for all ZFUIKit member
virtual zfbool startable()
whether able to start
virtual zfbool paused()
whether explicitly paused by user
virtual zfbool loaded()
whether loaded
virtual void objectOnInit(const ZFPathInfo &pathInfo)
load from pathInfo
virtual void audioOnLoop(void)
see E_AudioOnLoop
Definition ZFAudio.h:229
static zfidentity E_AudioOnStop(void)
see ZFObject::observerNotify
static zfidentity E_AudioOnPause(void)
see ZFObject::observerNotify
virtual void pause()
pause play
virtual void audioOnPause(void)
see E_AudioOnPause
Definition ZFAudio.h:225
virtual zfbool serializableOnSerializeToData(ZFSerializableData &serializableData, zfstring *outErrorHint=zft_zfnull, ZFSerializable *refOwner=zft_zfnull)
corresponding to serializableOnSerializeFromData, return whether the task is success,...
virtual void * nativeAudio()
the native audio
virtual void objectInfoImpl(zfstring &ret)
see objectInfo
virtual zfidentity audioTaskId()
an unique task id for impl, changed each time start or stop called
virtual void audioOnLoad(ZFResultType result, v_zfstring *errorHint)
see E_AudioOnLoad
Definition ZFAudio.h:199
static zfbool implAvailable()
whether impl is available
virtual zfbool loading()
whether loading
static zfidentity E_AudioOnLoop(void)
see ZFObject::observerNotify
virtual void audioOnStart(void)
see E_AudioOnStart
Definition ZFAudio.h:208
virtual zffloat & volume()
current volume
Definition ZFAudio.h:153
virtual const ZFPathInfo & pathInfo()
pathInfo of this audio
virtual void start()
start to play
virtual zfbool playing()
whether start success and playing, false when loading or still preparing to play or paused
virtual zftimet duration()
duration, valid only when loaded, may be 0 if impl not supported
virtual void resume()
resume play
static zfidentity E_AudioOnLoad(void)
see ZFObject::observerNotify
virtual zftimet position()
current position, valid only when started
virtual zfbool serializableOnSerializeFromData(const ZFSerializableData &serializableData, zfstring *outErrorHint=zft_zfnull, ZFSerializableData *outErrorPos=zft_zfnull)
for serializable data that has "category" attribute, ZFSerializable would ignore it and leave it to s...
virtual void audioOnResume(void)
see E_AudioOnResume
Definition ZFAudio.h:221
virtual void objectOnDealloc(void)
override this to destroy your object
virtual zfindex loopCur()
current loop count
virtual void load(const ZFPathInfo &pathInfo)
load from pathInfo
virtual zfindex & loop()
loop count of audio, 0 means play once, and zfindexMax means loop infinite until stop called
Definition ZFAudio.h:160
virtual void stop()
stop play
virtual const zfchar * stateHint()
return a state hint for debug
virtual void audioOnStop(ZFResultType result, v_zfstring *errorHint)
see E_AudioOnStop
Definition ZFAudio.h:212
static zfidentity E_AudioOnResume(void)
see ZFObject::observerNotify
virtual zfbool started()
whether started
static zfidentity E_AudioOnStart(void)
see ZFObject::observerNotify
general input callback
Definition ZFIOCallback_input.h:36
void observerNotify(zfidentity eventId, ZFObject *param0=zft_zfnull, ZFObject *param1=zft_zfnull)
notify the observer with eventId
path related info storage for impl, actual meaning of the info depends on impl
Definition ZFPathInfo.h:34
ZFSerializable's data container, see ZFSerializable.
Definition ZFSerializableData.h:74
type wrapper for ZFTypeId::Value
Definition ZFTypeId_CoreType.h:194
util class to alloc and hold ZFObject type
Definition ZFObjectAutoPtr.h:79