-
Notifications
You must be signed in to change notification settings - Fork 24
Open
Description
This thread should be where we discuss and work together to shape the future branch. I suggest we link inn commits/branches and standalone Gists here to try ut and discuss structures an concepts. I will start off by listing my ideas and motivations behind introducing braking changes and change the future.
Project
casparcg-connection will not go into 1.0 before the Future is merged to Master.- Future will not be merged unless it has documentation and examples in the Wiki.
Future will have breaking changes, and this is OK, since the current Master not is widely spread, and not considered stable yet.
Two-layer structure
- The top priority is to split
casparcg-connectioninto two layers. - The top-level
casparcg()-object of today will be renamedcasparcg-amcp-connection(). The newcasparcg-amcp-connection()will be a dumb layer only concerning socket connection and the AMCP protocol. - A new
casparcg()object will be the top-layer, usingamcp-connection()but with smart logics and convenience applied. - The main design goal is to not make any decisions on behalf of the user in the
casparcg-connection(), like i.e. automatic querying of current server version etc. casparcg()could have a separatecasparcg-osc-connection()added later on.
Namespaces
- I have yet to find out how to best implement multiple versions of the AMCP protocol. I'm not sure this is best done wit namespaces. This is one of the major concerns for the new structure.
Commands
- I want to remove the idea of parsing strings into high-level command-objects at a command-level. Such a parsing could be added to
casparcg(), but at the moment I don't see the point of this idea at all. It was a main premise for the first version of this library, but have never been used nor maintained. It should just go away, to open up for better concepts such as: - The promise of a command should live within the command (the command should be a promise?), not being created by the queue in
casparcg()? If not, it should at least be possible to create promises from commands without adding them to the queue. - All parameters of an AMCP command should be native properties of that object. Perhaps we need some Proxy object here? This would help documentation a lot, especially when we split out the command objects from the top-level.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels