Commit graph

517 commits

Author SHA1 Message Date
Erik Meyer
695ab00c6e fix: correct malformed error message 2026-08-25 17:24:43 -04:00
Neil Dorin
33e56d3259 feat: enhance IHasWebView interface with detailed webview event handling and error reporting 2026-08-21 12:23:23 -06:00
Erik Meyer
72844aa6ca feat: add IHasWirelessSharing interface for wireless presentation devices 2026-08-19 13:51:11 -04:00
Neil Dorin
e9812f7858 refactor: update documentation comments in IHasCresnetBranches interface 2026-08-14 13:16:49 -06:00
Neil Dorin
0d4fd7773e feat: update documentation links and remove obsolete files 2026-08-13 16:03:51 -06:00
Neil Dorin
da2a09f7cb feat: add INetworkSwitchVlanManager and INetworkSwitchPoeManager interfaces for VLAN and PoE control 2026-08-13 12:06:13 -06:00
Neil Dorin
7fca4d74bf feat: add IAnnotationStream interface for annotation stream functionality 2026-08-11 14:16:56 -06:00
Neil Dorin
830e207ea7 fix: correct device key reference in LevelControl property 2026-07-22 11:43:50 -06:00
Neil Dorin
4252e9c8e6 feat: add thread safety to error timer management in StatusMonitorBase 2026-07-22 09:04:43 -06:00
Neil Dorin
42b358862f feat: add DisableEcho property to GenericSshClient and integrate with CommFactory 2026-07-21 15:16:54 -06:00
Neil Dorin
f971a3adff feat: add IDspPresetsDirectRecall interface to define preset recall functionality 2026-07-21 11:21:22 -06:00
Neil Dorin
6852f47ce2 feat: add multiview layout support with new interface and state classes 2026-07-15 11:35:51 -06:00
Neil Dorin
f05a25c3e2 feat: update RoutingFeedbackManager to use ConcurrentDictionary for update timers to ensure thread safety 2026-07-14 21:47:52 -06:00
Neil Dorin
079f2beb8b feat: enhance routing graph handling for tile-sink children and add RoutingGraphHelpers utility class 2026-07-14 19:34:14 -06:00
Neil Dorin
7d1e0432cb feat: add IRoutingSinkWithLayouts interface to support layouts with multiple tile sinks 2026-07-13 12:26:57 -06:00
Neil Dorin
21995db550 feat: refactor FeedbackCollection and RoutingPortCollection to enforce unique keys and add AddRange method 2026-07-13 10:40:56 -06:00
Neil Dorin
dddb67317a
Merge pull request #1441 from PepperDash/feature/package-manifest-v3-routing-backport
Backport PR #1439: packageManifest CWS endpoint + v1/v2 config merge fix
2026-07-10 21:58:45 -06:00
Neil Dorin
3f8b97bff7 feat: add IHasDynamicMultiviewLayout interface and MultiviewParticipantSource class for dynamic layout support 2026-07-10 21:48:01 -06:00
jkdevito
4a366a5a51 fix: guard against empty Version in configured-but-not-loaded package passthrough
PopulatePackages' "configured but not currently loaded" pass-through could
still emit PackageVersion entries with a null/empty Version, reintroducing
the schema issue the loaded-reflection branch's own guard already prevents
(downstream parsers drop entries whose version isn't a string).
2026-07-10 13:03:28 -05:00
jkdevito
2d8e42f566 style: use file-scoped namespace in GetPackageManifestRequestHandler
Matches the convention used by the other request handlers in this
folder (ReportVersionsRequestHandler.cs, AppDebugRequestHandler.cs,
etc). Addresses PR #1441 review comment.
2026-07-10 09:37:29 -05:00
jkdevito
f0025ce56c Backport PR #1439: packageManifest CWS endpoint + v1/v2 config merge fix
Backports PepperDash/Essentials#1439 (merged to main at 6ceddcf5) onto
dev/v3-routing (v3.0.0-dev-v3-routing.40):

- New GET /packageManifest CWS route reporting Essentials/plugin/touchpanel
  UI package version info (GetPackageManifestRequestHandler).
- EssentialsConfig.Versions now round-trips via [JsonProperty("versions")].
- ConfigReader now detects v1 vs v2 config by presence of system/template
  nodes (previously any versions node caused the v1->v2 merge to be
  skipped), and re-applies the versions node after merge since
  PortalConfigReader.MergeConfigs does not carry it forward.
- Mobile control: track and validate UI client app versions
  (ConnectedClientVersionInfo, MobileControlSystemController changes merged
  cleanly from the PR).
- Directory.Build.props: adds PackageId AssemblyMetadata item (kept this
  branch's 3.0.0-local version).

Conflict resolution notes:
- This branch had already introduced its own AppVersion type (Version +
  RepoUrl only) for TouchpanelWrapperApp/UserInterfaces. Replaced it with
  the PR's unified NugetVersion (adds PackageId/RepoUrl/Name, all
  NullValueHandling.Ignore) to match main's schema, since AppVersion had
  no other references in the codebase.
- ConfigReader.LoadConfig on this branch had already fixed a double
  Stream.ReadToEnd() bug (reading fileContents once); kept that fix and
  layered the PR's v1/v2 detection fix + versions-node preservation on
  top of it, plus this branch's null-ConfigObject-after-merge guard.
- EssentialsWebApi.SetupRoutes: inserted the new packageManifest route
  into this branch's existing (longer) route list, which already
  includes routing-specific endpoints not present on main.

Builds clean (dotnet build on the full solution, 0 errors).

Not pushed - pending local hardware/config testing before push.
2026-07-10 09:37:29 -05:00
Neil Dorin
73bc50ef0d feat: update IP address retrieval logic to handle invalid values 2026-07-09 11:51:53 -06:00
Neil Dorin
94837a60cf feat: update debounce timer logic to handle multiple input ports for a single sink 2026-07-08 15:37:14 -06:00
Neil Dorin
d771320fff feat: refactor DeviceJsonApi parameter conversion and add MockRoutingMidpoint with configuration properties 2026-07-02 15:43:07 -06:00
Neil Dorin
9f18275f81 feat: update RoutingFeedbackManager to map downstream sink input ports and optimize performance in route updates 2026-07-02 10:53:51 -06:00
Neil Dorin
fb4ba8ccfa feat: enhance routing functionality with additional parameters in RouteDescriptor and update RouteDescriptorCollection for change notifications 2026-07-01 17:14:32 -06:00
Neil Dorin
4bb2917b69 feat: add RouteDescriptorCollectionChanged event to notify changes in route descriptors 2026-06-30 17:00:26 -06:00
Neil Dorin
aae41b5947 feat: refactor messaging interfaces and remove subscription support from IMobileControlMessengerWithSubscriptions 2026-06-26 15:53:51 -06:00
Neil Dorin
f4fe8eff90 feat: enhance routing and messaging logic with improved source handling and batch processing capabilities 2026-06-24 20:10:52 -06:00
Neil Dorin
a732c5e08e feat: enhance WebSocket services with HTTP GET handler for certificate confirmation and increase timeout for port forwarding 2026-06-23 16:08:42 -06:00
Neil Dorin
a18f7800d1 fix: improve port forwarding logic and error handling in RoutingFeedback session 2026-06-23 15:33:46 -06:00
Neil Dorin
a1d168c4ed feat: add HTTP GET handler to RoutingFeedbackWebSocket for client certificate confirmation 2026-06-22 22:48:16 -06:00
Neil Dorin
b65f895e06 feat: implement Routing Feedback WebSocket service and associated request handlers 2026-06-22 21:30:47 -06:00
Neil Dorin
0098673a5e feat: enhance audio codec phonebook functionality and messaging integration 2026-06-16 16:14:07 -06:00
Neil Dorin
fb0afc8c41 feat: implement DeviceActionMessenger for executing device actions via JSON API 2026-06-16 08:57:31 -06:00
Neil Dorin
4403e91b79 fix: correct UserInterfaces type and initialize TouchpanelWrapperApp in VersionData constructor 2026-06-12 11:17:11 -06:00
Neil Dorin
1b2f86eb43 feat: add UserInterfaces and TouchpanelWrapperApp properties to VersionData class 2026-06-12 10:53:04 -06:00
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
a90b5da61b feat: Extend IDspPresets interface to inherit from IKeyed 2026-06-04 17:24:45 -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
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
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
9a385eef96 refactor: Rename LocalConfigPresent to LocalConfigPresentBanner and enhance debug logging in ControlSystem 2026-05-07 11:00:49 -06:00