1 /*
2 * Copyright (c) 2024 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include "cj_avsession_ffi.h"
17
18 #include "avsession_errors.h"
19 #include "cj_avsession_impl.h"
20
21 #define CJGET_FFIDATA_AVSESSION OHOS::FFI::FFIData::GetData<OHOS::AVSession::CJAVSessionImpl>(sessionId)
22
23 extern "C" {
FfiMultimediaAVSessionSetAVMetaData(int64_t sessionId,CAVMetaData * data)24 int32_t FfiMultimediaAVSessionSetAVMetaData(int64_t sessionId, CAVMetaData* data)
25 {
26 if (data == nullptr) { return OHOS::AVSession::ERR_INVALID_PARAM; }
27 return CJGET_FFIDATA_AVSESSION->SetAVMetaData(*data);
28 }
29
FfiMultimediaAVSessionSetAVCallMetaData(int64_t sessionId,CAVCallMetaData * data)30 int32_t FfiMultimediaAVSessionSetAVCallMetaData(int64_t sessionId, CAVCallMetaData* data)
31 {
32 if (data == nullptr) { return OHOS::AVSession::ERR_INVALID_PARAM; }
33 return CJGET_FFIDATA_AVSESSION->SetAVCallMetaData(*data);
34 }
35
FfiMultimediaAVSessionSetAVCallState(int64_t sessionId,CAVCallState * state)36 int32_t FfiMultimediaAVSessionSetAVCallState(int64_t sessionId, CAVCallState* state)
37 {
38 if (state == nullptr) { return OHOS::AVSession::ERR_INVALID_PARAM; }
39 return CJGET_FFIDATA_AVSESSION->SetAVCallState(*state);
40 }
41
FfiMultimediaAVSessionSetAVPlaybackState(int64_t sessionId,CAVPlaybackState * state)42 int32_t FfiMultimediaAVSessionSetAVPlaybackState(int64_t sessionId, CAVPlaybackState* state)
43 {
44 if (state == nullptr) { return OHOS::AVSession::ERR_INVALID_PARAM; }
45 return CJGET_FFIDATA_AVSESSION->SetAVPlaybackState(*state);
46 }
47
FfiMultimediaAVSessionSetAVQueueItems(int64_t sessionId,CArray * items)48 int32_t FfiMultimediaAVSessionSetAVQueueItems(int64_t sessionId, CArray* items)
49 {
50 if (items == nullptr) { return OHOS::AVSession::ERR_INVALID_PARAM; }
51 return CJGET_FFIDATA_AVSESSION->SetAVQueueItems(*items);
52 }
53
FfiMultimediaAVSessionSetAVQueueTitle(int64_t sessionId,char ** title)54 int32_t FfiMultimediaAVSessionSetAVQueueTitle(int64_t sessionId, char** title)
55 {
56 if (title == nullptr) { return OHOS::AVSession::ERR_INVALID_PARAM; }
57 return CJGET_FFIDATA_AVSESSION->SetAVQueueTitle(*title);
58 }
59
FfiMultimediaAVSessionSetExtras(int64_t sessionId,CArray * extras)60 int32_t FfiMultimediaAVSessionSetExtras(int64_t sessionId, CArray* extras)
61 {
62 if (extras == nullptr) { return OHOS::AVSession::ERR_INVALID_PARAM; }
63 return CJGET_FFIDATA_AVSESSION->SetExtras(*extras);
64 }
65
FfiMultimediaAVSessionSetLaunchAbility(int64_t sessionId,int64_t abilityId)66 int32_t FfiMultimediaAVSessionSetLaunchAbility(int64_t sessionId, int64_t abilityId)
67 {
68 if (abilityId == 0) { return OHOS::AVSession::ERR_INVALID_PARAM; }
69 return CJGET_FFIDATA_AVSESSION->SetLaunchAbility(abilityId);
70 }
71
FfiMultimediaAVSessionGetController(int64_t sessionId)72 int32_t FfiMultimediaAVSessionGetController(int64_t sessionId)
73 {
74 return CJGET_FFIDATA_AVSESSION->GetController();
75 }
76
FfiMultimediaAVSessionGetAVCastController(int64_t sessionId)77 int32_t FfiMultimediaAVSessionGetAVCastController(int64_t sessionId)
78 {
79 return CJGET_FFIDATA_AVSESSION->GetAVCastController();
80 }
81
FfiMultimediaAVSessionGetOutputDevice(int64_t sessionId,COutputDeviceInfo * outputDeviceInfo)82 int32_t FfiMultimediaAVSessionGetOutputDevice(int64_t sessionId, COutputDeviceInfo* outputDeviceInfo)
83 {
84 if (outputDeviceInfo == nullptr) { return OHOS::AVSession::ERR_INVALID_PARAM; }
85 return CJGET_FFIDATA_AVSESSION->GetOutputDevice(*outputDeviceInfo);
86 }
87
FfiMultimediaAVSessionGetAllCastDisplays(int64_t sessionId,CArray * infos)88 int32_t FfiMultimediaAVSessionGetAllCastDisplays(int64_t sessionId, CArray* infos)
89 {
90 if (infos == nullptr) { return OHOS::AVSession::ERR_INVALID_PARAM; }
91 return CJGET_FFIDATA_AVSESSION->GetAllCastDisplays(*infos);
92 }
93
FfiMultimediaAVSessionActivate(int64_t sessionId)94 int32_t FfiMultimediaAVSessionActivate(int64_t sessionId)
95 {
96 return CJGET_FFIDATA_AVSESSION->Activate();
97 }
98
FfiMultimediaAVSessionDeactivate(int64_t sessionId)99 int32_t FfiMultimediaAVSessionDeactivate(int64_t sessionId)
100 {
101 return CJGET_FFIDATA_AVSESSION->Deactivate();
102 }
103
FfiMultimediaAVSessionDestroy(int64_t sessionId)104 int32_t FfiMultimediaAVSessionDestroy(int64_t sessionId)
105 {
106 return CJGET_FFIDATA_AVSESSION->Destroy();
107 }
108
FfiMultimediaAVSessionStopCasting(int64_t sessionId)109 int32_t FfiMultimediaAVSessionStopCasting(int64_t sessionId)
110 {
111 return CJGET_FFIDATA_AVSESSION->StopCasting();
112 }
113
FfiMultimediaAVSessionDispatchSessionEvent(int64_t sessionId,char ** event,CArray * args)114 int32_t FfiMultimediaAVSessionDispatchSessionEvent(int64_t sessionId, char** event, CArray* args)
115 {
116 if (event == nullptr || args == nullptr) { return OHOS::AVSession::ERR_INVALID_PARAM; }
117 return CJGET_FFIDATA_AVSESSION->DispatchSessionEvent(*event, *args);
118 }
119
FfiMultimediaAVSessionOn(int64_t sessionId,int32_t eventType,int64_t callbackId)120 int32_t FfiMultimediaAVSessionOn(int64_t sessionId, int32_t eventType, int64_t callbackId)
121 {
122 return CJGET_FFIDATA_AVSESSION->OnEvent(eventType, callbackId);
123 }
124
FfiMultimediaAVSessionOff(int64_t sessionId,int32_t eventType)125 int32_t FfiMultimediaAVSessionOff(int64_t sessionId, int32_t eventType)
126 {
127 return CJGET_FFIDATA_AVSESSION->OffEvent(eventType);
128 }
129 }