summaryrefslogtreecommitdiff
path: root/include/JSystem/JAudio2/JASCallback.h
blob: 33bd5e7f5e99112e963805e9640b7efd60efc477 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#ifndef JASCALLBACK_H
#define JASCALLBACK_H

#include "dolphin/types.h"

typedef long JASCallback(void*);

/**
 * @ingroup jsystem-jaudio
 * 
 */
struct JASCallbackMgr {
	struct TCallback {
		TCallback()
		    : mFunction(NULL)
		    , mArgument(NULL) {
		}

		/** @fabricated */
		bool isMatch(JASCallback* function, void* argument) { return (mFunction == function && mArgument == argument); }

		/** @fabricated */
		void clear() {
			mFunction = NULL;
			mArgument = NULL;
		}

		/* 0x00 */ JASCallback* mFunction;
		/* 0x04 */ void* mArgument;
	};

	bool regist(JASCallback*, void*);
	int reject(JASCallback*, void*);
	void callback();

	/* 0x00 */ TCallback mCallbacks[0x20];
};

#endif /* JASCALLBACK_H */