embedded-framework/middleware/MediaManager/src/MediaManagerImpl.cpp
2024-04-29 15:42:54 +08:00

50 lines
1.7 KiB
C++

/*
* Copyright (c) 2023 Fancy Code.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "MediaManagerImpl.h"
#include "ILog.h"
StatusCode MediaManagerImpl::Init(void)
{
IHalCpp::GetInstance()->GetCameraHal(mAllCameras);
return CreateStatusCode(STATUS_CODE_OK);
}
StatusCode MediaManagerImpl::UnInit(void)
{
return CreateStatusCode(STATUS_CODE_OK);
}
StatusCode MediaManagerImpl::SetMediaMonitor(std::shared_ptr<VMediaMonitor> &monitor)
{
mMediaMonitor = monitor;
SetCamerasMonitor();
return CreateStatusCode(STATUS_CODE_OK);
}
void MediaManagerImpl::ReportEvent(const CameraReportEvent &event)
{
LogInfo("ReportEvent. file: %s.\n", event.mFileName.c_str());
MediaReportEvent reprot(event.mFileName, static_cast<MediaChannel>(event.mCameraType));
auto monitor = mMediaMonitor.lock();
if (mMediaMonitor.expired()) {
LogWarning("MediaMonitor is expired.\n");
return;
}
monitor->ReportEvent(reprot);
}
void MediaManagerImpl::SetCamerasMonitor(void)
{
std::shared_ptr<VCameraHalMonitor> moniter = shared_from_this();
for (const auto &camera : mAllCameras) {
LogInfo("SetCameraMonitor.\n");
camera.second->SetCameraMonitor(moniter);
}
}