1 /* 2 * Copyright (c) 2022-2023 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 "session_listener_client.h" 17 #include "avsession_log.h" 18 19 namespace OHOS::AVSession { SessionListenerClient(const std::shared_ptr<SessionListener> & listener)20SessionListenerClient::SessionListenerClient(const std::shared_ptr<SessionListener>& listener) 21 : listener_(listener) 22 { 23 SLOGD("construct"); 24 } 25 OnSessionCreate(const AVSessionDescriptor & descriptor)26void SessionListenerClient::OnSessionCreate(const AVSessionDescriptor& descriptor) 27 { 28 auto copiedListener = listener_; 29 if (copiedListener) { 30 SLOGI("on session create for bundle %{public}s", descriptor.elementName_.GetBundleName().c_str()); 31 copiedListener->OnSessionCreate(descriptor); 32 } else { 33 SLOGE("on session create with out listener"); 34 } 35 } 36 OnSessionRelease(const AVSessionDescriptor & descriptor)37void SessionListenerClient::OnSessionRelease(const AVSessionDescriptor& descriptor) 38 { 39 auto copiedListener = listener_; 40 if (copiedListener) { 41 copiedListener->OnSessionRelease(descriptor); 42 } 43 } 44 OnTopSessionChange(const AVSessionDescriptor & descriptor)45void SessionListenerClient::OnTopSessionChange(const AVSessionDescriptor& descriptor) 46 { 47 auto copiedListener = listener_; 48 if (copiedListener) { 49 copiedListener->OnTopSessionChange(descriptor); 50 } 51 } 52 OnAudioSessionChecked(const int32_t uid)53void SessionListenerClient::OnAudioSessionChecked(const int32_t uid) 54 { 55 auto copiedListener = listener_; 56 if (copiedListener) { 57 copiedListener->OnAudioSessionChecked(uid); 58 } 59 } 60 OnDeviceAvailable(const OutputDeviceInfo & castOutputDeviceInfo)61void SessionListenerClient::OnDeviceAvailable(const OutputDeviceInfo& castOutputDeviceInfo) 62 { 63 auto copiedListener = listener_; 64 if (copiedListener) { 65 copiedListener->OnDeviceAvailable(castOutputDeviceInfo); 66 } 67 } 68 OnDeviceLogEvent(const DeviceLogEventCode eventId,const int64_t param)69void SessionListenerClient::OnDeviceLogEvent(const DeviceLogEventCode eventId, const int64_t param) 70 { 71 auto copiedListener = listener_; 72 if (copiedListener) { 73 copiedListener->OnDeviceLogEvent(eventId, param); 74 } 75 } 76 OnDeviceOffline(const std::string & deviceId)77void SessionListenerClient::OnDeviceOffline(const std::string& deviceId) 78 { 79 auto copiedListener = listener_; 80 if (copiedListener) { 81 copiedListener->OnDeviceOffline(deviceId); 82 } 83 } 84 } // namespace OHOS::AVSession 85