mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-02-10 02:05:08 +00:00
In order to support the way some Smart Objects work, a clear directory join was needed in order to allow for clearing a selection in certain circumstances. In order to support finer-grained dependencies while developing plugins, the Development Device Factory was added.
56 lines
1.7 KiB
C#
56 lines
1.7 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
|
|
using PepperDash.Core;
|
|
using PepperDash.Essentials.Core.Presets;
|
|
|
|
namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
|
{
|
|
/// <summary>
|
|
/// Interface for camera presets
|
|
/// </summary>
|
|
public interface IHasCodecRoomPresets
|
|
{
|
|
event EventHandler<EventArgs> CodecRoomPresetsListHasChanged;
|
|
|
|
List<CodecRoomPreset> NearEndPresets { get; }
|
|
|
|
List<CodecRoomPreset> FarEndRoomPresets { get; }
|
|
|
|
void CodecRoomPresetSelect(int preset);
|
|
|
|
void CodecRoomPresetStore(int preset, string description);
|
|
|
|
void SelectFarEndPreset(int preset);
|
|
}
|
|
|
|
public static class RoomPresets
|
|
{
|
|
/// <summary>
|
|
/// Converts non-generic RoomPresets to generic CameraPresets
|
|
/// </summary>
|
|
/// <param name="presets"></param>
|
|
/// <returns></returns>
|
|
public static List<TDestination> GetGenericPresets<TSource, TDestination>(this List<TSource> presets) where TSource : ConvertiblePreset where TDestination : PresetBase
|
|
{
|
|
return
|
|
presets.Select(preset => preset.ConvertCodecPreset())
|
|
.Where(newPreset => newPreset != null)
|
|
.Cast<TDestination>()
|
|
.ToList();
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Represents a room preset on a video codec. Typically stores camera position(s) and video routing. Can be recalled by Far End if enabled.
|
|
/// </summary>
|
|
public class CodecRoomPreset : PresetBase
|
|
{
|
|
public CodecRoomPreset(int id, string description, bool def, bool isDef)
|
|
: base(id, description, def, isDef)
|
|
{
|
|
|
|
}
|
|
}
|
|
} |