diff --git a/frameworks/BUILD.gn b/frameworks/BUILD.gn index f8755c625f6a56c405735841885f6d202f5fdc53..2c38e87faa2e69f2284dffb6ef3b0cbb8cd2a565 100644 --- a/frameworks/BUILD.gn +++ b/frameworks/BUILD.gn @@ -22,8 +22,12 @@ shared_library("audio_capturer_lite") { include_dirs = [ "//foundation/multimedia/audio_lite/frameworks/passthrough", "//foundation/multimedia/audio_lite/services/impl", + "//foundation/distributedschedule/samgr_lite/interfaces/kits/samgr", + ] + deps = [ + "//foundation/distributedschedule/samgr_lite/samgr:samgr", + "//foundation/multimedia/audio_lite/services:audio_capturer_impl", ] - deps = [ "//foundation/multimedia/audio_lite/services:audio_capturer_impl" ] } else { sources += [ "binder/audio_capturer_client.cpp" ] @@ -39,7 +43,7 @@ shared_library("audio_capturer_lite") { deps = [ "//base/security/permission/services/permission_lite/pms_client:pms_client", - "//foundation/communication/ipc_lite:liteipc_adapter", + "//foundation/distributedschedule/samgr_lite/samgr:samgr", "//foundation/graphic/surface:lite_surface", ] } diff --git a/frameworks/binder/audio_capturer_client.cpp b/frameworks/binder/audio_capturer_client.cpp index db2d3de3e22e3fa0a54735ee54497ceae13a1a4f..428dff96be203b3515e4cc0eeab835fe0a60f385 100644 --- a/frameworks/binder/audio_capturer_client.cpp +++ b/frameworks/binder/audio_capturer_client.cpp @@ -17,8 +17,8 @@ #include #include "audio_capturer_server.h" -#include "liteipc_adapter.h" #include "media_log.h" +#include "ipc_skeleton.h" #include "samgr_lite.h" #include "securec.h" #include "surface_impl.h" @@ -63,7 +63,7 @@ static int32_t ProxyCallbackFunc(void *owner, int code, IpcIo *reply) CallBackPara* para = static_cast(owner); AudioCapturerFuncId funcId = (AudioCapturerFuncId)para->funcId; - para->ret = IpcIoPopInt32(reply); + ReadInt32(reply, ¶->ret); switch (funcId) { case AUD_CAP_FUNC_CONNECT: case AUD_CAP_FUNC_DISCONNECT: @@ -74,23 +74,24 @@ static int32_t ProxyCallbackFunc(void *owner, int code, IpcIo *reply) case AUD_CAP_FUNC_SET_SURFACE: break; case AUD_CAP_FUNC_GET_FRAME_COUNT: - (*reinterpret_cast(para->data)) = IpcIoPopUint64(reply); + ReadUint64(reply, reinterpret_cast(para->data)); break; case AUD_CAP_FUNC_GET_STATUS: - (*reinterpret_cast(para->data)) = IpcIoPopUint32(reply); + ReadUint32(reply, reinterpret_cast(para->data)); break; case AUD_CAP_FUNC_GET_INFO: { uint32_t size = 0; - void *bufferAdd = IpcIoPopFlatObj(reply, &size); + ReadUint32(reply, &size); + void *bufferAdd = (void*)ReadBuffer(reply, (size_t)size); if (bufferAdd == nullptr || !size) { - MEDIA_INFO_LOG("IpcIoPopFlatObj info failed"); + MEDIA_INFO_LOG("Readbuffer info failed"); return -1; } (void)memcpy_s(para->data, sizeof(AudioCapturerInfo), bufferAdd, size); break; } case AUD_CAP_FUNC_GET_MIN_FRAME_COUNT: - (*reinterpret_cast(para->data)) = IpcIoPopUint32(reply); + ReadUint32(reply, reinterpret_cast(para->data)); break; default : MEDIA_INFO_LOG("Callback, unknown funcId = %d", para->funcId); @@ -208,9 +209,10 @@ bool AudioCapturer::AudioCapturerClient::GetMinFrameCount(int32_t sampleRate, in IpcIo io; uint8_t tmpData[DEFAULT_IPC_SIZE]; IpcIoInit(&io, tmpData, DEFAULT_IPC_SIZE, 0); - IpcIoPushInt32(&io, sampleRate); - IpcIoPushInt32(&io, channelCount); - IpcIoPushFlatObj(&io, &audioFormat, sizeof(audioFormat)); + WriteInt32(&io, sampleRate); + WriteInt32(&io, channelCount); + WriteUint32(&io, sizeof(audioFormat)); + WriteBuffer(&io, &audioFormat, sizeof(audioFormat)); CallBackPara para = {.funcId = AUD_CAP_FUNC_GET_MIN_FRAME_COUNT, .ret = MEDIA_IPC_FAILED, .data = &frameCount}; uint32_t ret = client->proxy_->Invoke(client->proxy_, AUD_CAP_FUNC_GET_MIN_FRAME_COUNT, &io, ¶, ProxyCallbackFunc); @@ -274,7 +276,8 @@ int32_t AudioCapturer::AudioCapturerClient::SetCapturerInfo(const AudioCapturerI IpcIo io; uint8_t tmpData[DEFAULT_IPC_SIZE]; IpcIoInit(&io, tmpData, DEFAULT_IPC_SIZE, 0); - IpcIoPushFlatObj(&io, &info, sizeof(info)); + WriteUint32(&io, sizeof(info)); + WriteBuffer(&io, &info, sizeof(info)); CallBackPara para = {.funcId = AUD_CAP_FUNC_SET_INFO, .ret = MEDIA_IPC_FAILED}; if (proxy_ == nullptr) { diff --git a/services/BUILD.gn b/services/BUILD.gn index a93b3950d630395f61166f2346d4d0bb3f2f6471..fd05d1513152e7badfea0406bb56aaec687801b4 100644 --- a/services/BUILD.gn +++ b/services/BUILD.gn @@ -29,13 +29,14 @@ static_library("audio_capturer_server") { "//base/security/permission/interfaces/kits/permission_lite", "//foundation/distributedschedule/samgr_lite/interfaces/kits/registry", "//foundation/distributedschedule/samgr_lite/interfaces/kits/samgr", + "//foundation/communication/ipc/interfaces/innerkits/c/ipc/include", "//foundation/distributedschedule/samgr_lite/interfaces/kits/communication/broadcast", "//foundation/multimedia/utils/lite/interfaces/kits", ] deps = [ "//base/security/permission/services/permission_lite/pms_client:pms_client", - "//foundation/communication/ipc_lite:liteipc_adapter", + "//foundation/communication/ipc/interfaces/innerkits/c/ipc:ipc_single", "//foundation/distributedschedule/samgr_lite/samgr:samgr", "//foundation/graphic/surface:lite_surface", "//foundation/multimedia/audio_lite/services:audio_capturer_impl", diff --git a/services/server/include/audio_capturer_server.h b/services/server/include/audio_capturer_server.h index 81de7487bc0614bd4e119fae0b938df570417505..e4663c155b8bea9387bc0f8b5a914745c3800775 100644 --- a/services/server/include/audio_capturer_server.h +++ b/services/server/include/audio_capturer_server.h @@ -19,7 +19,7 @@ #include #include #include "audio_capturer_impl.h" -#include "liteipc_adapter.h" +#include "ipc_skeleton.h" #include "serializer.h" #include "surface.h" diff --git a/services/server/src/audio_capturer_samgr.cpp b/services/server/src/audio_capturer_samgr.cpp index 1e054fc0378e6a35d7c5de357633721bcf4ae0c0..9526cb813a0cba9a83b5fdc639a09ea26172f91b 100644 --- a/services/server/src/audio_capturer_samgr.cpp +++ b/services/server/src/audio_capturer_samgr.cpp @@ -81,7 +81,7 @@ static int32 Invoke(IServerProxy *iProxy, int funcId, void *origin, IpcIo *req, return FALSE; } - pid_t pid = GetCallingPid(origin); + pid_t pid = GetCallingPid(); AudioCapturerServer *mng = AudioCapturerServer::GetInstance(); if (mng == nullptr) { MEDIA_ERR_LOG("Invoke failed, mng is nunnptr"); diff --git a/services/server/src/audio_capturer_server.cpp b/services/server/src/audio_capturer_server.cpp index 01427d778163138982d6f81c3fc94963745e6b1e..bfca65ea69bfb7033a92cb7ff4216bce1d53a149 100644 --- a/services/server/src/audio_capturer_server.cpp +++ b/services/server/src/audio_capturer_server.cpp @@ -47,9 +47,9 @@ void AudioCapturerServer::AcceptServer(pid_t pid, IpcIo *reply) if (clientPid_ == -1) { capturer_ = new AudioCapturerImpl; clientPid_ = pid; - IpcIoPushInt32(reply, MEDIA_OK); + WriteInt32(reply, MEDIA_OK); } else { - IpcIoPushInt32(reply, MEDIA_IPC_FAILED); + WriteInt32(reply, MEDIA_IPC_FAILED); } } @@ -68,7 +68,7 @@ void AudioCapturerServer::DropServer(pid_t pid, IpcIo *reply) clientPid_ = -1; bufCache_ = nullptr; } - IpcIoPushInt32(reply, MEDIA_OK); + WriteInt32(reply, MEDIA_OK); } SurfaceBuffer *AudioCapturerServer::GetCacheBuffer(void) @@ -165,24 +165,29 @@ int32_t AudioCapturerServer::SetSurfaceProcess(Surface *surface) void AudioCapturerServer::GetMinFrameCount(IpcIo *req, IpcIo *reply) { - int32_t sampleRate = IpcIoPopInt32(req); - int32_t channelCount = IpcIoPopInt32(req); - AudioCodecFormat audioFormat = (AudioCodecFormat)IpcIoPopInt32(req); + int32_t sampleRate = 0; + ReadInt32(req, &sampleRate); + int32_t channelCount = 0; + ReadInt32(req, &channelCount); + int32_t data = 0; + ReadInt32(req, &data); + AudioCodecFormat audioFormat = (AudioCodecFormat)data; size_t frameCount; bool ret = AudioCapturerImpl::GetMinFrameCount(sampleRate, channelCount, audioFormat, frameCount); - IpcIoPushInt32(reply, ret); - IpcIoPushUint32(reply, frameCount); + WriteInt32(reply, ret); + WriteUint32(reply, frameCount); } void AudioCapturerServer::SetInfo(AudioCapturerImpl *capturer, IpcIo *req, IpcIo *reply) { AudioCapturerInfo info; uint32_t size = 0; - void *bufferAdd = IpcIoPopFlatObj(req, &size); + ReadUint32(req, &size); + void *bufferAdd = (void*)ReadBuffer(req, size); if (bufferAdd == nullptr || size == 0) { - MEDIA_INFO_LOG("IpcIoPopFlatObj info failed"); - IpcIoPushInt32(reply, -1); + MEDIA_INFO_LOG("Readbuffer info failed"); + WriteInt32(reply, -1); return; } errno_t retCopy = memcpy_s(&info, sizeof(AudioCapturerInfo), bufferAdd, size); @@ -191,7 +196,7 @@ void AudioCapturerServer::SetInfo(AudioCapturerImpl *capturer, IpcIo *req, IpcIo return; } int32_t ret = capturer->SetCapturerInfo(info); - IpcIoPushInt32(reply, ret); + WriteInt32(reply, ret); } void AudioCapturerServer::GetInfo(AudioCapturerImpl *capturer, IpcIo *reply) @@ -203,8 +208,9 @@ void AudioCapturerServer::GetInfo(AudioCapturerImpl *capturer, IpcIo *reply) AudioCapturerInfo info; int32_t ret = capturer->GetCapturerInfo(info); - IpcIoPushInt32(reply, ret); - IpcIoPushFlatObj(reply, &info, sizeof(AudioCapturerInfo)); + WriteInt32(reply, ret); + WriteUint32(reply, sizeof(AudioCapturerInfo)); + WriteBuffer(reply, &info, sizeof(AudioCapturerInfo)); } void AudioCapturerServer::Start(AudioCapturerImpl *capturer, IpcIo *reply) @@ -220,7 +226,7 @@ void AudioCapturerServer::Start(AudioCapturerImpl *capturer, IpcIo *reply) pthread_create(&dataThreadId_, nullptr, ReadAudioDataProcess, this); MEDIA_INFO_LOG("create thread ReadAudioDataProcess SUCCESS"); } - IpcIoPushInt32(reply, record); + WriteInt32(reply, record); } void AudioCapturerServer::Stop(AudioCapturerImpl *capturer, IpcIo *reply) @@ -236,7 +242,7 @@ void AudioCapturerServer::Stop(AudioCapturerImpl *capturer, IpcIo *reply) threadExit_ = false; dataThreadId_ = 0; } - IpcIoPushInt32(reply, ret); + WriteInt32(reply, ret); } void AudioCapturerServer::GetMiniFrameCount(IpcIo *req, IpcIo *reply) @@ -246,15 +252,18 @@ void AudioCapturerServer::GetMiniFrameCount(IpcIo *req, IpcIo *reply) return; } + int32_t sampleRate = 0; + ReadInt32(req, &sampleRate); + int32_t channelCount = 0; + ReadInt32(req, &channelCount); uint32_t size = 0; - int32_t sampleRate = IpcIoPopInt32(req); - int32_t channelCount = IpcIoPopInt32(req); - AudioCodecFormat *audioFormat = (AudioCodecFormat *)IpcIoPopFlatObj(req, &size); + ReadUint32(req, &size); + AudioCodecFormat *audioFormat = (AudioCodecFormat *)ReadBuffer(req, size); size_t frameCount; bool ret = AudioCapturerImpl::GetMinFrameCount(sampleRate, channelCount, *audioFormat, frameCount); - IpcIoPushInt32(reply, ret); - IpcIoPushUint64(reply, frameCount); + WriteInt32(reply, ret); + WriteUint64(reply, frameCount); } void AudioCapturerServer::GetFrameCount(AudioCapturerImpl *capturer, IpcIo *reply) @@ -265,8 +274,8 @@ void AudioCapturerServer::GetFrameCount(AudioCapturerImpl *capturer, IpcIo *repl } uint64_t frameCount = capturer->GetFrameCount(); - IpcIoPushInt32(reply, MEDIA_OK); - IpcIoPushUint64(reply, frameCount); + WriteInt32(reply, MEDIA_OK); + WriteUint64(reply, frameCount); } void AudioCapturerServer::GetStatus(AudioCapturerImpl *capturer, IpcIo *reply) @@ -277,8 +286,8 @@ void AudioCapturerServer::GetStatus(AudioCapturerImpl *capturer, IpcIo *reply) } State status = capturer->GetStatus(); - IpcIoPushInt32(reply, MEDIA_OK); - IpcIoPushInt32(reply, status); + WriteInt32(reply, MEDIA_OK); + WriteInt32(reply, status); } void AudioCapturerServer::SetSurface(IpcIo *req, IpcIo *reply) @@ -289,7 +298,7 @@ void AudioCapturerServer::SetSurface(IpcIo *req, IpcIo *reply) return; } int32_t ret = SetSurfaceProcess(surface); - IpcIoPushInt32(reply, ret); + WriteInt32(reply, ret); } void AudioCapturerServer::Dispatch(int32_t funcId, pid_t pid, IpcIo *req, IpcIo *reply) @@ -305,7 +314,7 @@ void AudioCapturerServer::Dispatch(int32_t funcId, pid_t pid, IpcIo *req, IpcIo auto capturer = GetAudioCapturer(pid); if (capturer == nullptr) { MEDIA_ERR_LOG("Cannot find client object.(pid=%d)", pid); - IpcIoPushInt32(reply, MEDIA_IPC_FAILED); + WriteInt32(reply, MEDIA_IPC_FAILED); return; } switch (funcId) { @@ -332,7 +341,7 @@ void AudioCapturerServer::Dispatch(int32_t funcId, pid_t pid, IpcIo *req, IpcIo break; case AUD_CAP_FUNC_RELEASE: ret = capturer->Release(); - IpcIoPushInt32(reply, ret); + WriteInt32(reply, ret); break; case AUD_CAP_FUNC_SET_SURFACE: SetSurface(req, reply);