Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
wiki:user:emrum:jack_session_2_draft [2011/07/10 19:41] – grammoboy | wiki:user:emrum:jack_session_2_draft [2011/07/20 19:58] (current) – emrum | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Jack-Session v2.0 - brainstorm ====== | ||
+ | ===== jack-session v1.0 ===== | ||
- | ===== Jack-Session v2.0 - brainstorm ===== | + | Links and references to the current 1.0 API. |
- | \\ | + | * [[http:// |
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | |||
+ | ===== Brainstorm ===== | ||
Be welcome, to add your opinion and idea below. | Be welcome, to add your opinion and idea below. | ||
Line 21: | Line 30: | ||
* Conditions where connection-restoration fails - must be known (e.g. apps are not allowed to auto-connect jack-ports) | * Conditions where connection-restoration fails - must be known (e.g. apps are not allowed to auto-connect jack-ports) | ||
\\ | \\ | ||
- | * sometimes eventually you don't want a JS-capable app to be part of the current session, although you're running it at the same time. JS should offer a flag for this (set by jack-client-app on user request): session_client-> | + | * sometimes eventually you don't want a JS-capable app to be part of the current session, although you're running it at the same time. JS should offer a flag for this (set by jack-client-app on user request): |
\\ | \\ | ||
- | === proposal jack-session v2.0 === | + | ===== Introduce new events ===== |
<code C> | <code C> | ||
Line 31: | Line 40: | ||
enum JackSessionEventType { | enum JackSessionEventType { | ||
... | ... | ||
- | JackSessionCloseAndLoadNew = 4, | + | JackSessionCloseAndLoadNew = 4, // load a new session, without quitting applications (if possible) |
- | JackSessionCloseWithoutQuit = 5 | + | JackSessionCloseWithoutQuit = 5, // close session-document without quitting applications |
+ | JackSessionCloseWithQuit = 6 // close the session and quit everything | ||
} | } | ||
Line 60: | Line 70: | ||
+ | ===== Replace the command_line with an appID (cross-platform) ===== | ||
- **saving a command line with the session is a very bad idea.** | - **saving a command line with the session is a very bad idea.** | ||
Line 76: | Line 87: | ||
The database can be processed with simple split(), | The database can be processed with simple split(), | ||
\\ | \\ | ||
+ | \\ | ||
One single entry would look like: | One single entry would look like: | ||
(fist word is the appID, **not** the executable name, although it may be equal. | (fist word is the appID, **not** the executable name, although it may be equal. | ||
Line 82: | Line 93: | ||
< | < | ||
- | appID==amSynth; | + | appID==amSynth; |
+ | |||
+ | </ | ||
+ | \\ | ||
+ | On windows, the entry might look like: | ||
+ | < | ||
+ | |||
+ | appID==amSynth; | ||
</ | </ | ||
Line 133: | Line 151: | ||
\\ | \\ | ||
- | === Jack-Session - Best Practice Section === | + | ===== (Multi) Session Handling ===== |
+ | \\ | ||
+ | |||
+ | \\ | ||
+ | Can multi-session handling work reliably ? \\ | ||
+ | Is it too complicated ? \\ | ||
+ | Can a single-session be open multiple times ? \\ | ||
+ | \\ | ||
+ | The current behavior, to me, feels strange and unexpected: | ||
+ | Opening a running session (twice) opens another set of windows. | ||
+ | What's that ? Do I have a " | ||
+ | It is very opaque, unclear, which window belongs to which session. | ||
+ | Is that how it should be, is that what we'd want ? | ||
+ | \\ | ||
+ | \\ | ||
+ | An idea:\\ | ||
+ | Add a sessionID. \\ | ||
+ | The client would allow selecting the session it belongs to (with a drop-down-box). This would allow multiple sessions to be open. | ||
+ | Every session should have an associated color (light, water-color) and a short description string (user-assigned), | ||
+ | \\ | ||
+ | For example I could have a " | ||
+ | \\ | ||
+ | In qjackctl, there would be an option " | ||
+ | |||
+ | \\ | ||
+ | \\ | ||
+ | **Store connections: | ||
+ | \\ | ||
+ | * Every saved sessions stores all connections currently active (when hitting save). | ||
+ | \\ | ||
+ | **Restoration of connections** in a multi-session environment. | ||
+ | \\ | ||
+ | * Start with no connections, | ||
+ | * Load first session | ||
+ | * Load a second session => the same | ||
+ | * __Restore additionally__ saved connections __if the user requests__, from an already loaded session. | ||
+ | \\ | ||
+ | Every app has a drop-down-box, | ||
+ | \\ | ||
+ | \\ | ||
+ | |||
+ | ===== Jack-Session - Best Practice Section | ||
\\ | \\ | ||
Line 144: | Line 203: | ||
* don't use single character parameters in the command_line | * don't use single character parameters in the command_line | ||
\\ | \\ | ||
- | * apps are not allowed to auto-connect jack-ports | + | * with the session, applications should **restore their window position** and state (maximized, curled up, minimized, etc.) |
\\ | \\ | ||
* apps are not allowed to auto-connect jack-ports, when using jack-session (user option) | * apps are not allowed to auto-connect jack-ports, when using jack-session (user option) | ||
Line 153: | Line 212: | ||
\\ | \\ | ||
- | === Comments and additional ideas === | + | ===== Comments and additional ideas ===== |