| 12
 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
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 
 | #include <stdio.h>#include <stdint.h>
 #include <malloc.h>
 #include <sys/types.h>
 
 #include <binder/Parcel.h>
 #include <binder/IMemory.h>
 #include <binder/IPCThreadState.h>
 #include <binder/IServiceManager.h>
 #include "ILEDService.h"
 
 #ifdef __ANDROID__
 #define LOG_TAG "ILEDService"
 #if ANDROID_API_LEVEL >= 26
 #include <log/log.h>
 #else
 #include <cutils/log.h>
 #endif
 #endif
 
 namespace android
 {
 enum{
 INIT_HARDWARE = IBinder::FIRST_CALL_TRANSACTION,
 RELEASE_HARDWARE,
 ON,
 OFF,
 };
 
 
 class BpLEDService : public BpInterface<ILEDService>
 {
 public:
 BpLEDService(const sp<IBinder>& impl) : BpInterface<ILEDService>(impl)
 {
 
 }
 
 int initHardware(void)
 {
 Parcel data, reply;
 data.writeInterfaceToken(ILEDService::getInterfaceDescriptor());
 remote()->transact(INIT_HARDWARE, data, &reply);
 return (int)reply.readInt32();
 }
 
 void releaseHardware(void)
 {
 Parcel data, reply;
 data.writeInterfaceToken(ILEDService::getInterfaceDescriptor());
 remote()->transact(RELEASE_HARDWARE, data, &reply);
 }
 
 int on(void)
 {
 Parcel data, reply;
 data.writeInterfaceToken(ILEDService::getInterfaceDescriptor());
 remote()->transact(ON, data, &reply);
 return (int) reply.readInt32();
 }
 
 int off(void)
 {
 Parcel data, reply;
 data.writeInterfaceToken(ILEDService::getInterfaceDescriptor());
 remote()->transact(OFF, data, &reply);
 return (int) reply.readInt32();
 }
 };
 
 IMPLEMENT_META_INTERFACE(LEDService, "android.vectoros.LEDService");
 
 status_t BnLEDService::onTransact(uint32_t code, const Parcel& data, Parcel* reply, uint32_t flags)
 {
 char *buff;
 int len, retval;
 status_t status;
 
 switch(code) {
 case INIT_HARDWARE:{
 CHECK_INTERFACE(ILEDService, data, reply);
 retval = initHardware();
 reply->writeInt32(retval);
 return NO_ERROR;
 } break;
 
 
 case RELEASE_HARDWARE:{
 CHECK_INTERFACE(ILEDService, data, reply);
 releaseHardware();
 return NO_ERROR;
 } break;
 
 case ON:{
 CHECK_INTERFACE(ILEDService, data, reply);
 on();
 return NO_ERROR;
 } break;
 
 case OFF:{
 CHECK_INTERFACE(ILEDService, data, reply);
 off();
 return NO_ERROR;
 } break;
 
 default:
 return BBinder::onTransact(code, data, reply, flags);
 }
 }
 }
 
 |