Commit graph

4155 commits

Author SHA1 Message Date
anthony-lopez-pd
72c948e760 fix: disambiguate DirectorySelectRow (101) and feedback (104) descriptions
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>
2026-06-09 17:16:23 -04:00
anthony-lopez-pd
dff50ea544 fix: correct PhoneHookState (digital 72) feedback description
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>
2026-06-09 16:58:30 -04:00
anthony-lopez-pd
4058040330 fix: remove dead DirectoryLineSelected join; fix SelfviewPositionFb description
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>
2026-06-09 16:20:58 -04:00
anthony-lopez-pd
f2f4662c8d fix: remove dead SelectLayout and AvailableLayoutsFb serial-142 joins
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>
2026-06-09 15:45:39 -04:00
anthony-lopez-pd
b2ddce2cc6 fix(videocodec): correct join-map direction labels in VideoCodecControllerJoinMap
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>
2026-06-09 14:30:23 -04:00
Neil Dorin
041bb5c50e feat: Add null or empty check for AppUrl in SetAppUrl method 2026-06-08 16:57:34 -06:00
Neil Dorin
a27f604660 feat: Add IHasCameraMuteMessenger and IHasCameraPresetsMessenger for camera control messaging 2026-06-08 14:33:47 -06:00
anthony-lopez-pd
48e64a291f feat(videocodec): add IsCohost to Participant model
Participant exposed IsHost/IsMyself but no co-host role. Several SDKs
(e.g. the ZRC SDK behind epi-zoom-room) report a distinct cohost; add an
IsCohost flag so codecs can surface the Me/Host/Cohost role the mobile
control UI expects.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 16:02:23 -04:00
Neil Dorin
a90b5da61b feat: Extend IDspPresets interface to inherit from IKeyed 2026-06-04 17:24:45 -06:00
Neil Dorin
bb029221c0 feat: Add DevelopmentServerAddress property for direct communication and update URL handling in MobileControl classes 2026-06-03 17:00:43 -06:00
Neil Dorin
153922c3fe refactor: Remove commented-out Config properties from Device class and add spacing in EssentialsDevice class 2026-06-03 14:09:47 -06:00
Neil Dorin
a1617fbeb2 fix: Remove unnecessary message from NotImplementedException in DevicePropertiesConverter 2026-06-03 12:22:06 -06:00
anthony-lopez-pd
cd89cf1cc9 fix: Correct typo in LevelControlListItem class name 2026-06-02 09:55:27 -04:00
Neil Dorin
0244b0e585 feat: Add IBasicVolumeControlsMessenger and update MessengerFactoryRegistry for volume control integration 2026-05-27 19:04:32 -06:00
Neil Dorin
101d6c6e79 feat: Enhance token validation in MobileControlWebsocketServer to handle missing tokens 2026-05-20 13:30:42 -06:00
Neil Dorin
ec7db1b510 feat: Remove IRoutingSinkWithFeedbackMessenger class and its associated actions 2026-05-14 15:38:59 -06:00
Neil Dorin
f64b595fd7 feat: Refactor routing interfaces and feedback mechanisms
- 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.
2026-05-14 14:36:30 -06:00
Neil Dorin
b9dcec587d feat: Add new status actions for call history, codec cameras, room presets, content sharing, room event schedule, shutdown prompt, and tech password messengers 2026-05-13 17:00:23 -06:00
Neil Dorin
91aa0efa5f feat: Add new messengers for various device interfaces and remove VideoCodecBaseMessenger
- Implemented IHasMeetingInfoMessenger to handle meeting information updates.
- Created IHasReadyMessenger for devices indicating readiness status.
- Added IHasStandbyModeMessenger to manage standby mode actions.
- Introduced IPrivacyMessenger for privacy mode control.
- Developed IVideoCodecInfoMessenger to provide codec information.
- Removed the obsolete VideoCodecBaseMessenger class.
- Updated MessengerFactoryRegistry to register new messengers for IHasReady, IHasMeetingInfo, IHasStartMeeting, IHasStandbyMode, IPrivacy, and IVideoCodecInfo interfaces.

Co-authored-by: Copilot <copilot@github.com>
2026-05-08 12:10:56 -06:00
Neil Dorin
b41c30cdd0 feat: Add full status actions to IHasCodecSelfView and IHasDirectory messengers 2026-05-07 20:55:44 -06:00
Neil Dorin
ab4a243ffb feat: Add messengers for codec functionalities and directory management
- 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>
2026-05-07 20:51:14 -06:00
Neil Dorin
e19e69d5c0 refactor: Update solution configuration for Debug and Release builds across multiple platforms to ensure all tests run 2026-05-07 14:04:14 -06:00
Neil Dorin
bad08fa6db refactor: Extract portal URL display logic into a separate method for improved readability 2026-05-07 12:08:26 -06:00
Neil Dorin
9a385eef96 refactor: Rename LocalConfigPresent to LocalConfigPresentBanner and enhance debug logging in ControlSystem 2026-05-07 11:00:49 -06:00
Neil Dorin
ff1393b768 refactor: Simplify namespace declaration and formatting in IDisplayCurrentInput interface 2026-05-06 17:13:48 -06:00
Neil Dorin
f80aa95649 Refactor audio codec and display messaging interfaces
- Introduced IDialerCallStatus interface to streamline call status handling in audio codecs.
- Updated AudioCodecBase to implement IDialerCallStatus, providing a common structure for call status events.
- Added IDisplayCurrentInput interface for display devices to expose current input information.
- Created corresponding messenger classes for IDialerCallStatus and IDisplayCurrentInput to facilitate communication.
- Implemented CameraControlMessenger for camera devices to manage camera controls and presets.
- Added IWarmingCoolingMessenger for warming and cooling devices to handle status updates.
- Updated MessengerFactoryRegistry to register new messenger classes and ensure proper device messaging.
- Cleaned up CameraBase and removed unnecessary comments and whitespace in various files.

Co-authored-by: Copilot <copilot@github.com>
2026-05-06 17:13:02 -06:00
Neil Dorin
dfc1d2bb21 refactor: Rename DisplayBaseMessenger to IRoutingSinkWithSwitchingMessenger and update related references 2026-05-06 13:54:10 -06:00
Neil Dorin
bc70aa629c Enhance logging and mobile control functionality
- 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>
2026-05-06 13:44:09 -06:00
Neil Dorin
b0525b0f97 Merge remote-tracking branch 'origin/dev/v3-testing' into dev/v3-testing 2026-05-01 14:44:52 -06:00
Neil Dorin
2e1bb8b286 feat: Enhance WebSocket URL generation to support dual-stack environments by using CSLAN IP if available 2026-05-01 14:44:07 -06:00
Andrew Welker
89a1b662b0 fix: return early if config devices are null, with an appropriate log message 2026-04-24 10:19:18 -05:00
Neil Dorin
dc656bddf1 feat: Implement login request handler with token generation and error handling 2026-04-16 21:31:42 -06:00
Neil Dorin
d1501d2dab feat: Enhance plugin version check with error handling and logging 2026-04-13 22:35:47 -06:00
Neil Dorin
af7411f43b fix: Correctly retrieve package ID from assembly metadata for version checks 2026-04-13 22:03:07 -06:00
Neil Dorin
7d60c41dbc feat: Rename LoadConfig2 to LoadConfig and implement plugin version checks against configuration 2026-04-13 21:50:24 -06:00
Neil Dorin
5f4a35d425 feat: Enhance initialization error handling and add console command for reporting exceptions 2026-04-13 21:11:35 -06:00
Neil Dorin
71cf7ef4df feat: Add console command to report initialization exceptions for improved diagnostics 2026-04-13 21:01:22 -06:00
Neil Dorin
ac3b73cf32 feat: Implement initialization exceptions handling and add API endpoint for retrieval 2026-04-13 20:57:15 -06:00
Neil Dorin
554916a74a refactor: Remove commented generic interface from IRouting for clarity 2026-04-13 20:57:10 -06:00
Neil Dorin
3d8ee22f45 feat: Refactor routing signal types and enhance web API for routing devices
- 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.
2026-04-10 09:49:16 -06:00
Neil Dorin
ec3e2bbc0b fix: Remove 'Debug 4.7.2' configuration from project files for consistency 2026-04-09 14:19:33 -06:00
Neil Dorin
b85f1dab6b feat: Add asset loading functionality and related tests for improved resource management 2026-04-09 14:00:27 -06:00
Neil Dorin
4ed5e648c0 feat: Load assets during ControlSystem initialization for enhanced resource management 2026-04-08 17:00:16 -06:00
Neil Dorin
35d44f91e4 feat: Implement devTools zip file extraction and cleanup process for improved debugging support 2026-04-08 16:53:29 -06:00
Neil Dorin
fa9dc3a2b1 feat: Add devToolsVersion to build configuration for enhanced version control 2026-04-08 16:46:45 -06:00
Neil Dorin
7e3c62b303 fix: Update actions/checkout and actions/setup-dotnet versions for improved compatibility 2026-04-08 15:54:15 -06:00
Neil Dorin
884b2c2e6e feat: Enhance documentation for MicrophonePrivacyController and its factory with detailed summaries and parameter descriptions 2026-04-08 15:49:38 -06:00
Neil Dorin
daf9b4bda0 refactor: Change CustomActivate and Initialize methods to protected access in multiple classes for better inheritance control 2026-04-08 15:47:58 -06:00
Neil Dorin
e818c9ca03 fix: Downgrade setup-dotnet action version to v5 for compatibility 2026-04-08 15:24:13 -06:00
Neil Dorin
5dd6d18fcc feat: Update CI workflow and project files for improved testing and documentation generation 2026-04-08 15:23:49 -06:00