Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add VT Server #400

Draft
wants to merge 32 commits into
base: main
Choose a base branch
from
Draft

Add VT Server #400

wants to merge 32 commits into from

Conversation

ad3154
Copy link
Member

@ad3154 ad3154 commented Dec 29, 2023

This is a draft for cleaning up and eventually pulling in the VT server files.

  • Created a base class for VT client & server so they can share common enums
  • Added the concept of a "managed working set" which stores client specific data for a VT server
    • This also provides the object pool deserializer. Deserialization is handled in a worker thread to avoid tying up a server while it's parsing an object pool.
  • Added VT Server (somewhat WIP, needs lots of Aux-N stuff for example)
    • The actual server interface is abstract, though I provide an implementation for some app specific things like get_supported_small_fonts_bitfield... probably need to re-evaluate some abstraction before merging.
  • Fixed a number of warnings in various places, which I got when building with JUCE

@ad3154 ad3154 added the iso: virtual terminal Related to the ISO-11783:7 standard label Dec 29, 2023
@ad3154 ad3154 self-assigned this Dec 29, 2023
@ad3154 ad3154 linked an issue Dec 29, 2023 that may be closed by this pull request
@ad3154 ad3154 force-pushed the vt-server-managed-working-set branch from 7982511 to 000c80c Compare January 19, 2024 00:16
Copy link

sonarcloud bot commented Jan 19, 2024

Quality Gate Passed Quality Gate passed

The SonarCloud Quality Gate passed, but some issues were introduced.

305 New issues
0 Security Hotspots
0.2% Coverage on New Code
25.5% Duplication on New Code

See analysis details on SonarCloud

@ad3154 ad3154 force-pushed the vt-server-managed-working-set branch from 000c80c to 2ba38ca Compare March 31, 2024 20:40
@ad3154 ad3154 force-pushed the vt-server-managed-working-set branch from fa07fb6 to 8aee801 Compare April 25, 2024 00:19
@ad3154 ad3154 force-pushed the vt-server-managed-working-set branch from 8aee801 to 72b9452 Compare May 10, 2024 04:47
Copy link

sonarcloud bot commented May 12, 2024

Added a class that will parse a working set for a VT server.
Implemented change string value command response.
Implemented change fill attribute command response.
Implemented change child position command response.
Added input string value setter and getter.
Added VT object attribute enumerations.
Added a virtual function to VT objects to set their attributes.
Added handling of the change attribute command.
Also, working on increasing the amount of debug logging available in
the VT server.
…onses to VT server

Added processing of change list item command, and added response.
Added processing of change size command, and added response.
Added processing of change font attributes command, added response.
Added processing of change soft key mask and added response.
Fixed deserializing non RLE encoded picture graphics with formats of 4-bit colour and monochrome.
Fixed RLE monochrome picture graphic deserializing when pixel widths are not divisible by 8.
Fixed container hidden states could be incorrectly reversed when interpreting the hide show object command.
Fixed rare cases of deserialized object IDs being flagged as duplicates and improved logging for such cases.
Removed a bit of test/debug code that was unneeded.
Added a number of logging messages for various VT client commands.
Fixed incorrect comparisons of VT version byte and a non-value initialized enum.
Fixed validation of input list child objects.
Also cleaned up unneeded callbacks.
…ding the load version response

Fixed an issue where we were supposed to be padding VT client's change string commands
with spaces if they sent us a string that was too short.
Added a way to defer sending the load version response until the parsing
thread is joined. This prevents a race condition against the client commanding
us to do something, and the thread completing its parsing.
Added deserializing of the VT auxiliary objects.
Added lots of macro execution support.
Added support for change background colour command.
Added support for select input object.
Add dynamic VT message priority based on selected version.
Added support for change priority message.
Tolerate aux input maintenance message, for now.
Added a way to check the focused object.
ad3154 and others added 11 commits September 26, 2024 16:53
Fixed a bug where we weren't allowing a working set to replace objects
with duplicate IDs with other objects with the same ID as long as the type
is the same.
Fixed a bug where Aux objects weren't being added to the object tree.
Fixed an issue where change child position command packets inside macros would be truncated
due to us assuming command packets would be 8 bytes.
Fixed an issue where bits in a monochrome bitmap were interpreted in reverse,
causing monochrome picture graphics would appear corrupted.
… object pool

Added the ability to change output polygons' point information in the VT objects.
Added VT server support for change polygon point messages.
Added VT server support for delete object pool messages.
Added a base class for VT object pools so that common information can
be shared between VT servers and a VT designer application without
duplicating our IOP parser.
Added missing doxygen.
@ad3154 ad3154 force-pushed the vt-server-managed-working-set branch from 20eb634 to e24de03 Compare September 26, 2024 23:24
Copy link

sonarcloud bot commented Sep 26, 2024

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
iso: virtual terminal Related to the ISO-11783:7 standard
Projects
None yet
Development

Successfully merging this pull request may close these issues.

VT server support
2 participants