29 #include <android/hardware/nidec/1.0/INidec.h>
30 #include <hidl/Status.h>
31 #include <hidl/LegacySupport.h>
32 #include <utils/misc.h>
33 #include <hidl/HidlSupport.h>
36 #include <cutils/properties.h>
37 #include <cutils/ashmem.h>
41 using android::hardware::hidl_handle;
42 using android::hardware::nidec::V1_0::INidec;
44 #define UNUSED(x) (void)(x)
46 #define CODERS_SHM_NAME "NI_SHM_CODERS"
47 #define STR_BUFFER_LEN 32
60 android::sp<INidec>
service = INidec::getService();
63 printf(
"Failed to get service\n");
67 service->GetAppFlag(param, [&](int32_t ret,
const hidl_handle &handle) {
68 printf(
"GetAppFlag: ret %d\n", ret);
71 shm_fd = dup(handle->data[0]);
72 printf(
"vendor:GetAppFlag shm_fd:%d\n", shm_fd);
81 native_handle_t *handle = native_handle_create(1, 0);
82 handle->data[0] = shm_fd;
83 service->SetAppFlag(param, handle);
85 printf(
"Create shm fd %d\n", shm_fd);
86 int32_t *shm_data = (int32_t *)mmap(
87 0,
sizeof(int32_t), PROT_READ | PROT_WRITE, MAP_SHARED, shm_fd, 0);
88 if (MAP_FAILED == shm_data)
90 printf(
"Error mmap shm_data ..\n");
93 printf(
"set shm data %d\n", *shm_data);
97 shm_data = (int32_t *)mmap(0,
sizeof(int32_t), PROT_READ | PROT_WRITE,
98 MAP_SHARED, shm_fd, 0);
99 if (MAP_FAILED == shm_data)
101 printf(
"Error mmap shm_data ..\n");
103 printf(
"get shm data %d\n", *shm_data);
107 printf(
"Get shm fd %d\n", shm_fd);
108 int32_t *shm_data = (int32_t *)mmap(
109 0,
sizeof(int32_t), PROT_READ | PROT_WRITE, MAP_SHARED, shm_fd, 0);
110 if (MAP_FAILED == shm_data)
112 printf(
"mmap failed errno = %d\n", errno);
114 printf(
"get shm data %d\n", *shm_data);