mmehr2 / Msw4

Source code for MagicScroll for Windows (basic) project.
0 stars 0 forks source link

Adding UI for entering, editing, removing from the possible list of Secondaries (PRIMARY) #5

Open mmehr2 opened 6 years ago

mmehr2 commented 6 years ago

This is a feature intended for the Primary version only (the main differentiation between the two).

UI requirements listed elsewhere. This is for the internal support in my CustomComm class. Need to make sure the Secondary address comes from at least a user-editable CONFIG file and persists, for now.

The RemoteDialog class seems to be able to be pressed into service. More thought needed.

mmehr2 commented 6 years ago

I am currently using the RemoteDialog without changes.

For Login (setting up the local channel), I am using the Username as the local DeviceName. This is set as the SECONDARY name as the code goes into immediate listening mode.

For the remote DeviceName to choose for connecting, I am using the Username field of the Remote Installations section. This is the one that shows up in the list box after the user enters it.

Mostly, the Login and Connect buttons behave as desired. There is a behavior that no longer makes sense with Pubnub (that did with Google Talk). The Login button switches to Logout only after the Connect button has returned successfully. It makes more sense with my setup to have Login/Logout be allowed immediately, and then have Connect/Disconnect operate "on top of" that. Currently, I don't think you can get a Disconnect without a Logout. The user may want to operate with several different remotes in one session of usage.

Internally, I have added another file to the system for user-editable configuration. This file is currently called the MSW.INI file (NOTE: the user can't see the .INI unless they enable the capability, and most don't - consider a name change to this file). This file contains various configuration info for the Remote subsystem.

First there are the Pubnub security keys (as plaintext hex ASCII), so they can be copied by the customer directly from their Pubnub account. After discussions with Pubnub, they wish us to use a single pair of these for the project, so tracking and billing can be done directly with one company (ECS Video). In that case, it is still probably useful for ECS to have this accessible for possible modification, but maybe in a different place than where the customer can see/use it too. (Two files and hide one? Or just don't document it.)

The same file contains configuration strings for the CompanyName (used to complete the channel name) and the default Devicename. The end user can configure these to whatever they wish. They are internally adjusted if any of Pubnub's "reserved characters" are used. Currently, the algorithm is found in the source code in the file PubnubComm.cpp around line 150 in the function remove_invalid().

My channel naming convention is to add the prefix "MSW-" to the CompanyName above, followed by the separator "-" and the DeviceName, whether local (for SECONDARY listening) or remote (selected by PRIMARY for connection). Currently, the two DeviceNames come from the UI, while the CompanyName is specified in the INI file.

When security is added using TLS (perhaps for the file transfer feature), the keys will probably need to be kept here as well, unless there are better alternatives available on Windows 10. Direct registry editing is probably not a good thing to mandate for customer usage, so some kind of configuration in the installer program might be desirable. The installer was not included in this project, however. Contact ECS for the particulars.

There is also the need for some end user configuration around the use of a Proxy system in connecting to the Internet. This code is not currently included in the project, but may need to be added for certain customers.

mmehr2 commented 6 years ago

What makes this an enhancement is the need for this to operate only on the PRIMARY version of MSW-R. Eric wants the Remote Dialog to be disabled and/or hidden on the SECONDARY version, to be sold to the customer's satellite studios/offices. There will be one PRIMARY version (initially) sold to them that will be in the operators' offices (maybe more later) and that should be sold for more.

In line with this, there is a need to further differentiate the SECONDARY such that its keyboad/mouse operations are disabled when it is in a Remote conversation. This points up the need for an operational protocol to Start/Stop the connection by a message conversation. The conversation should be rejected if there is one already going on. (This will be needed the first time there are two PRIMARY installs of this program that could contact the same SECONDARY device.)

These clarifications need to be added to the Requirements document, as well.

mmehr2 commented 6 years ago

Work Tasks: Scope: Primary (value added)

Sending Machine Preferences:

mmehr2 commented 6 years ago