2026-01-26 18:56:53 +09:00

70 lines
2.1 KiB
C#

/*
* Copyright (c) 2025 LG Electronics Inc.
* SPDX-License-Identifier: LicenseRef-LGE-Proprietary
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using VisionCommon;
namespace VisionUI.Camera {
/// <summary>
/// 메인 카메라 뷰 매니저
/// </summary>
public class MainCameraViewManager {
private static Dictionary<eDisplayType, MainCameraView> _MainCameraViews = new Dictionary<eDisplayType, MainCameraView>();
private static object LockObj = new object();
private static MainCameraViewManager _instance = null;
/// <summary>
/// 싱글톤 패턴 객체
/// </summary>
public static MainCameraViewManager Instance {
get {
lock (LockObj) {
if (_instance == null) {
_instance = new MainCameraViewManager();
}
return _instance;
}
}
}
/// <summary>
/// 메인 카메라 뷰 가져오기
/// </summary>
/// <param name="displayType">디스플레이 타입</param>
/// <returns></returns>
public MainCameraView GetMainCameraView(eDisplayType displayType) {
foreach (var itemPairs in _MainCameraViews) {
if (itemPairs.Key == displayType) {
return itemPairs.Value;
}
}
_MainCameraViews[displayType] = new MainCameraView(displayType);
return _MainCameraViews[displayType];
}
/// <summary>
/// 생성자
/// </summary>
public MainCameraViewManager() {
_instance = this;
}
/// <summary>
/// 메인 카메라 뷰 해제/제거
/// </summary>
/// <param name="displayType">디스플레이 타입</param>
public void DisposeMainCameraView(eDisplayType displayType) {
if (_MainCameraViews.ContainsKey(displayType)) {
_MainCameraViews.Remove(displayType);
}
}
}
}