70 lines
2.1 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|
|
} |