Both analog 101 (FromSIMPL select) and analog 104 (ToSIMPL feedback echo)
were described "Directory Select Row and Feedback", implying the feedback
was on 101. Clarified: 101 = "Directory Select Row"; 104 = "Directory
Selected Row FB".
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
PhoneHookState (ToSIMPL) was labeled "Dial Phone" — a copy of the
DialPhone input description on the same join. Changed to "Phone hook
state FB" to accurately describe the feedback.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
DirectoryLineSelected (digital 101, FromSIMPL) had no handler anywhere in
VideoCodecBase.cs — directory selection is driven by analog 101
(DirectorySelectRow). DirectoryEntryIsContact (ToSIMPL) already documents
the output side of that join. Removed the dead inbound entry.
SelfviewPositionFb (serial 211) description "advance selfview position"
read like a command; updated to "Current selfview PIP position string FB"
to accurately reflect that it is a ToSIMPL feedback.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Both entries were forward-looking stubs: IHasCodecLayouts has no
string-based layout-select method, so neither join was ever wired in
LinkVideoCodecCameraLayoutsToApi. String-based layout selection is
Zoom-specific (eLayoutStyle enum) and lives on serial 215 in the EPI.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Capability metadata only — no wiring/behavior change. Verified against the actual
LinkToApi wiring and a SIMPL EISC bridge signal dump:
- CameraPresetSelect (a121), FarEndPresetSelect (a122): ToSIMPL -> ToFromSIMPL
(driven as input via SetUShortSigAction, also fed back)
- SelectedContactMethodCount (a102): FromSIMPL -> ToSIMPL ("Reports..." feedback)
- CurrentDialString (s1): ToSIMPL -> ToFromSIMPL (read as the dial input by ManualDial,
echoed back as FB)
- Participant audio/video/pin toggles (d501/801/1101): ToSIMPL -> FromSIMPL (commands)
Makes the generated join-map docs accurate for every video-codec EPI.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Removed ITxRouting and ITxRoutingWithFeedback interfaces as they were redundant.
- Updated RouteDescriptor and RouteSwitchDescriptor to use new feedback interfaces.
- Modified RoutingFeedbackManager to utilize IRoutingSinkWithFeedback and IRoutingMidpointWithFeedback.
- Adjusted GenericAudioOut, BlueJeansPc, and other device classes to implement new feedback interfaces.
- Introduced new messenger classes for IRoutingSinkWithFeedback and IRoutingMidpointWithFeedback.
- Cleaned up unused messenger interfaces and consolidated routing logic.
- Updated MobileControlEssentialsRoomBridge to remove dependency on IHasCurrentSourceInfoChange.
- Implemented IHasCodecCamerasMessenger to handle camera selection and control actions.
- Created IHasCodecLayoutsMessenger for managing codec layouts.
- Developed IHasCodecSelfViewMessenger to manage self-view functionality.
- Added IHasDirectoryMessenger for directory operations including fetching and searching.
- Introduced IHasFarEndContentStatusMessenger to report far-end content status.
- Implemented IPasswordPromptMessenger for handling password prompts.
- Updated VideoCodecBaseMessenger to remove redundant directory and call history handling.
- Registered new messenger types in MessengerFactoryRegistry.
- Added necessary using directives in ControlSystem.cs for UC functionalities.
Co-authored-by: Copilot <copilot@github.com>
- Added error log level change notification in Debug.cs.
- Updated appdebug command usage to include sink options and timeout parameters in Debug.cs.
- Implemented AddDefaultMessengersForDevice method in IMobileControl interface for better messenger registration.
- Modified EssentialsDevice to create mobile control messengers based on available interfaces.
- Introduced MessengerFactoryRegistry to streamline messenger creation for various device types.
- Refactored MobileControlSystemController to utilize the new messenger registration system and removed redundant setup methods.
Co-authored-by: Copilot <copilot@github.com>
- Renamed `UsbOutput` to `Usb` in `eRoutingSignalType.cs`.
- Removed unused `UsbInput` and `SecondaryAudio` signal types.
- Added new HTTP route for retrieving routing devices and tielines in `EssentialsWebApi.cs`.
- Implemented `GetRoutingDevicesAndTieLinesHandler` to handle requests for routing devices and tielines, including detailed port information.
- Updated `GenericSink` to remove `SecondaryAudio` from input port signal types.
- Created `ICurrentSourcesMessenger` to manage current source information and status updates.
- Introduced `IDeviceInfoProviderMessenger` for device information communication with debounce functionality.
- Updated `MobileControlSystemController` to use new messenger classes for current sources and device info.
- Added console commands for listing tielines and visualizing routes in `ControlSystem.cs`.
- Implemented methods for visualizing routes and current routes, including filtering options.
- Updated RelayControlledShade to utilize Timer for output pulsing.
- Refactored MockVC to replace CTimer with Timer for call status simulation.
- Modified VideoCodecBase to enhance documentation and improve feedback handling.
- Removed obsolete IHasCamerasMessenger and updated related classes to use IHasCamerasWithControls.
- Adjusted PressAndHoldHandler to implement Timer for button hold actions.
- Enhanced logging throughout MobileControl and RoomBridges for better debugging and information tracking.
- Cleaned up unnecessary comments and improved exception handling in various classes.
- Updated ICurrentSources interface to use IRoutingSource instead of SourceListItem.
- Introduced CurrentSourcesChangedEventArgs for detailed event notifications.
- Modified IRoutingOutputs and IRoutingSource interfaces to include JSON properties for serialization.
- Enhanced IRoutingSink and related interfaces to implement ICurrentSources for better source management.
- Refactored RoutingFeedbackManager to utilize new current source handling.
- Updated GenericAudioOut, GenericSink, and BlueJeansPc classes to implement new current source logic.
- Adjusted MobileControl messengers to accommodate changes in current source handling.
- Removed deprecated destination handling in MobileControlEssentialsRoomBridge.
- Removed the HttpLogoServer class and its related functionality from ControlSystem.
- Updated ControlSystem to eliminate references to the logo server, including initialization and device checks.
- Cleaned up unused variables and methods related to logo server handling.
- Replaced CCriticalSection with lock statements in DeviceManager for better thread management.
- Updated AddDevice and RemoveDevice methods to use Monitor for locking.
- Enhanced event handling for device activation and registration.
- Modified FileIO class to utilize Task for asynchronous file operations instead of CrestronInvoke.
- Improved feedback mechanisms in FeedbackBase and SystemMonitorController using Task.Run.
- Refactored GenericQueue to remove Crestron threading dependencies and utilize System.Threading.
- Updated BlueJeansPc and VideoCodecBase classes to use Task for asynchronous operations.
- Cleaned up unnecessary critical sections and improved code documentation across various files.
Updating IDeviceFactory to resolve [FEATURE]-Refactor Plugin loading mechanism #1065.
This change should be backwards-compatible with existing plugins that use the EssentialsPluginDeviceFactory<T> class,
as the interfaces are implemented by the various base classes.
In addition, the correct assembly name is now printed when a type is loaded.