Add innosetup files
[jack2.git] / android / BnAndroidShm.cpp
blob6ea0afcc5cf10f766e1d641d2b0b8c5158a22b96
1 #include "BnAndroidShm.h"
2 #include <binder/Parcel.h>
4 namespace android {
5 status_t BnAndroidShm::onTransact( uint32_t code,
6 const Parcel &data,
7 Parcel *reply,
8 uint32_t flags)
10 switch(code) {
11 case HW_SENDCOMMAND:{
12 CHECK_INTERFACE(IAndroidShm, data, reply);
13 const char *str;
14 str = data.readCString();
15 reply->writeInt32(sendCommand(str));
16 return NO_ERROR;
17 }break;
19 case HW_GETBUFFER:{
20 CHECK_INTERFACE(IAndroidShm, data, reply);
21 int32_t index;
22 data.readInt32(&index);
23 sp<IMemoryHeap> Data = getBuffer(index);
24 if(Data != NULL){
25 reply->writeStrongBinder(Data->asBinder());
27 return NO_ERROR;
28 }break;
30 case HW_ALLOC_SHM:{
31 CHECK_INTERFACE(IAndroidShm, data, reply);
32 int32_t size;
33 data.readInt32(&size);
34 reply->writeInt32(allocShm(size));
35 return NO_ERROR;
36 }break;
38 case HW_REMOVE_SHM:{
39 CHECK_INTERFACE(IAndroidShm, data, reply);
40 int32_t index;
41 data.readInt32(&index);
42 reply->writeInt32(removeShm(index));
43 return NO_ERROR;
44 }break;
46 case HW_IS_ALLOCATED:{
47 CHECK_INTERFACE(IAndroidShm, data, reply);
48 int32_t index;
49 data.readInt32(&index);
50 reply->writeInt32(isAllocated(index));
51 return NO_ERROR;
52 }break;
54 case HW_SET_REGISTRY_INDEX:{
55 CHECK_INTERFACE(IAndroidShm, data, reply);
56 int32_t index;
57 data.readInt32(&index);
58 reply->writeInt32(setRegistryIndex(index));
59 return NO_ERROR;
60 }break;
62 case HW_GET_REGISTRY_INDEX:{
63 CHECK_INTERFACE(IAndroidShm, data, reply);
64 reply->writeInt32(getRegistryIndex());
65 return NO_ERROR;
66 }break;
68 case HW_INIT_SEMAPHORE:{
69 CHECK_INTERFACE(IAndroidShm, data, reply);
70 const char *name;
71 name = data.readCString();
72 sp<IMemoryHeap> Data = InitSemaphore(name);
73 if(Data != NULL){
74 reply->writeStrongBinder(Data->asBinder());
76 return NO_ERROR;
77 }break;
79 default:
80 return BBinder::onTransact(code, data, reply, flags);