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_controller_ffi.h"
17
18 #include "avsession_errors.h"
19 #include "cj_avsession_controller_impl.h"
20 #include "cj_avsession_impl.h"
21 #include "avsession_log.h"
22 #include "cj_lambda.h"
23
24 #define CJ_AVSESSION_CONTROLLER_IMPL_STRING \
25 OHOS::AVSession::CJAVSessionControllerImpl::GetInstance(std::string(sessionId))
26
27 extern "C" {
FfiMultimediaAVSessionControllerDestroy(char * sessionId)28 int32_t FfiMultimediaAVSessionControllerDestroy(char *sessionId)
29 {
30 if (sessionId == nullptr) { return OHOS::AVSession::ERR_INVALID_PARAM; }
31 return CJ_AVSESSION_CONTROLLER_IMPL_STRING->Destroy();
32 }
33
FfiMultimediaAVSessionControllerGetAVCallState(char * sessionId,CAVCallState * avCallState)34 int32_t FfiMultimediaAVSessionControllerGetAVCallState(char* sessionId, CAVCallState* avCallState)
35 {
36 if (sessionId == nullptr) { return OHOS::AVSession::ERR_INVALID_PARAM; }
37 return CJ_AVSESSION_CONTROLLER_IMPL_STRING->GetAVCallState(*avCallState);
38 }
39
FfiMultimediaAVSessionControllerGetAVCallMetaData(char * sessionId,CAVCallMetaData * avCallMetadata)40 int32_t FfiMultimediaAVSessionControllerGetAVCallMetaData(char* sessionId, CAVCallMetaData* avCallMetadata)
41 {
42 if (sessionId == nullptr) { return OHOS::AVSession::ERR_INVALID_PARAM; }
43 return CJ_AVSESSION_CONTROLLER_IMPL_STRING->GetAVCallMetaData(*avCallMetadata);
44 }
45
FfiMultimediaAVSessionControllerGetAVPlaybackState(char * sessionId,CAVPlaybackState * avPlaybackState)46 int32_t FfiMultimediaAVSessionControllerGetAVPlaybackState(char *sessionId, CAVPlaybackState* avPlaybackState)
47 {
48 if (sessionId == nullptr) { return OHOS::AVSession::ERR_INVALID_PARAM; }
49 return CJ_AVSESSION_CONTROLLER_IMPL_STRING->GetAVPlaybackState(*avPlaybackState);
50 }
51
FfiMultimediaAVSessionControllerGetAVMetaData(char * sessionId,CAVMetaData * avMetadata)52 int32_t FfiMultimediaAVSessionControllerGetAVMetaData(char* sessionId, CAVMetaData* avMetadata)
53 {
54 if (sessionId == nullptr) { return OHOS::AVSession::ERR_INVALID_PARAM; }
55 return CJ_AVSESSION_CONTROLLER_IMPL_STRING->GetAVMetaData(*avMetadata);
56 }
57
FfiMultimediaAVSessionControllerGetOutputDevice(char * sessionId,COutputDeviceInfo * outputDeviceInfo)58 int32_t FfiMultimediaAVSessionControllerGetOutputDevice(char* sessionId, COutputDeviceInfo* outputDeviceInfo)
59 {
60 if (sessionId == nullptr) { return OHOS::AVSession::ERR_INVALID_PARAM; }
61 return CJ_AVSESSION_CONTROLLER_IMPL_STRING->GetOutputDevice(*outputDeviceInfo);
62 }
63
FfiMultimediaAVSessionControllerGetRealPlaybackPosition(char * sessionId,int64_t * position)64 int32_t FfiMultimediaAVSessionControllerGetRealPlaybackPosition(char* sessionId, int64_t* position)
65 {
66 if (sessionId == nullptr) { return OHOS::AVSession::ERR_INVALID_PARAM; }
67 return CJ_AVSESSION_CONTROLLER_IMPL_STRING->GetRealPlaybackPosition(*position);
68 }
69
FfiMultimediaAVSessionControllerIsActive(char * sessionId,bool * isActive)70 int32_t FfiMultimediaAVSessionControllerIsActive(char* sessionId, bool* isActive)
71 {
72 if (sessionId == nullptr) { return OHOS::AVSession::ERR_INVALID_PARAM; }
73 return CJ_AVSESSION_CONTROLLER_IMPL_STRING->IsActive(*isActive);
74 }
75
FfiMultimediaAVSessionControllerGetValidCommands(char * sessionId,CArray * commands)76 int32_t FfiMultimediaAVSessionControllerGetValidCommands(char* sessionId, CArray* commands)
77 {
78 if (sessionId == nullptr) { return OHOS::AVSession::ERR_INVALID_PARAM; }
79 return CJ_AVSESSION_CONTROLLER_IMPL_STRING->GetValidCommands(*commands);
80 }
81
FfiMultimediaAVSessionControllerGetAVQueueItems(char * sessionId,CArray * items)82 int32_t FfiMultimediaAVSessionControllerGetAVQueueItems(char* sessionId, CArray* items)
83 {
84 if (sessionId == nullptr) { return OHOS::AVSession::ERR_INVALID_PARAM; }
85 return CJ_AVSESSION_CONTROLLER_IMPL_STRING->GetAVQueueItems(*items);
86 }
87
FfiMultimediaAVSessionControllerGetAVQueueTitle(char * sessionId,char ** title)88 int32_t FfiMultimediaAVSessionControllerGetAVQueueTitle(char* sessionId, char** title)
89 {
90 if (sessionId == nullptr) { return OHOS::AVSession::ERR_INVALID_PARAM; }
91 return CJ_AVSESSION_CONTROLLER_IMPL_STRING->GetAVQueueTitle(*title);
92 }
93
FfiMultimediaAVSessionControllerGetExtras(char * sessionId,CArray * extras)94 int32_t FfiMultimediaAVSessionControllerGetExtras(char* sessionId, CArray* extras)
95 {
96 if (sessionId == nullptr) { return OHOS::AVSession::ERR_INVALID_PARAM; }
97 return CJ_AVSESSION_CONTROLLER_IMPL_STRING->GetExtras(*extras);
98 }
99
FfiMultimediaAVSessionControllerGetLaunchAbility(char * sessionId,int64_t * abilityId)100 int32_t FfiMultimediaAVSessionControllerGetLaunchAbility(char *sessionId, int64_t* abilityId)
101 {
102 if (sessionId == nullptr) { return OHOS::AVSession::ERR_INVALID_PARAM; }
103 return CJ_AVSESSION_CONTROLLER_IMPL_STRING->GetLaunchAbility(*abilityId);
104 }
105
FfiMultimediaAVSessionControllerSendCommonCommand(char * sessionId,char * command,CArray * args)106 int32_t FfiMultimediaAVSessionControllerSendCommonCommand(char *sessionId, char* command, CArray* args)
107 {
108 if (sessionId == nullptr) { return OHOS::AVSession::ERR_INVALID_PARAM; }
109 return CJ_AVSESSION_CONTROLLER_IMPL_STRING->SendCommonCommand(command, *args);
110 }
111
FfiMultimediaAVSessionControllerSendControlCommand(char * sessionId,CAVSessionCommand * command)112 int32_t FfiMultimediaAVSessionControllerSendControlCommand(
113 char *sessionId, CAVSessionCommand* command)
114 {
115 if (sessionId == nullptr) { return OHOS::AVSession::ERR_INVALID_PARAM; }
116 return CJ_AVSESSION_CONTROLLER_IMPL_STRING->SendControlCommand(*command);
117 }
118
FfiMultimediaAVSessionControllerSkipToQueueItem(char * sessionId,int32_t * itemId)119 int32_t FfiMultimediaAVSessionControllerSkipToQueueItem(char *sessionId, int32_t* itemId)
120 {
121 if (sessionId == nullptr) { return OHOS::AVSession::ERR_INVALID_PARAM; }
122 return CJ_AVSESSION_CONTROLLER_IMPL_STRING->SkipToQueueItem(*itemId);
123 }
124
FfiMultimediaAVSessionControllerSendAVKeyEvent(char * sessionId,CKeyEvent * eventPtr)125 int32_t FfiMultimediaAVSessionControllerSendAVKeyEvent(char *sessionId, CKeyEvent* eventPtr)
126 {
127 if (sessionId == nullptr) { return OHOS::AVSession::ERR_INVALID_PARAM; }
128 return CJ_AVSESSION_CONTROLLER_IMPL_STRING->SendAVKeyEvent(*eventPtr);
129 }
130
FfiMultimediaAVSessionControllerOn(char * sessionId,int32_t type,int64_t id)131 int32_t FfiMultimediaAVSessionControllerOn(char *sessionId, int32_t type, int64_t id)
132 {
133 return CJ_AVSESSION_CONTROLLER_IMPL_STRING->OnEvent(type, id);
134 }
135
FfiMultimediaAVSessionControllerOff(char * sessionId,int32_t type)136 int32_t FfiMultimediaAVSessionControllerOff(char *sessionId, int32_t type)
137 {
138 return CJ_AVSESSION_CONTROLLER_IMPL_STRING->OffEvent(type);
139 }
140
FfiMultimediaAVSessionControllerOnCallMetadataChange(char * sessionId,int32_t type,CParameters * filter,int64_t id)141 int32_t FfiMultimediaAVSessionControllerOnCallMetadataChange(
142 char *sessionId, int32_t type, CParameters* filter, int64_t id)
143 {
144 return CJ_AVSESSION_CONTROLLER_IMPL_STRING->OnEventCallMetadataChange(type, filter, id);
145 }
146
FfiMultimediaAVSessionControllerOnCallStateChange(char * sessionId,int32_t type,CParameters * filter,int64_t id)147 int32_t FfiMultimediaAVSessionControllerOnCallStateChange(
148 char *sessionId, int32_t type, CParameters* filter, int64_t id)
149 {
150 return CJ_AVSESSION_CONTROLLER_IMPL_STRING->OnEventCallStateChange(type, filter, id);
151 }
152
FfiMultimediaAVSessionControllerOnPlaybackStateChange(char * sessionId,int32_t type,CParameters * filter,int64_t id)153 int32_t FfiMultimediaAVSessionControllerOnPlaybackStateChange(
154 char *sessionId, int32_t type, CParameters* filter, int64_t id)
155 {
156 return CJ_AVSESSION_CONTROLLER_IMPL_STRING->OnEventPlaybackStateChange(type, filter, id);
157 }
158
FfiMultimediaAVSessionControllerOnMetaDataChange(char * sessionId,int32_t type,CParameters * filter,int64_t id)159 int32_t FfiMultimediaAVSessionControllerOnMetaDataChange(
160 char *sessionId, int32_t type, CParameters* filter, int64_t id)
161 {
162 return CJ_AVSESSION_CONTROLLER_IMPL_STRING->OnEventMetaDataChang(type, filter, id);
163 }
164 }