ardour.git
10 years agouse new GtkUI design in ARDOUR_UI
Paul Davis [Tue, 8 Oct 2013 00:27:54 +0000 (20:27 -0400)]
use new GtkUI design in ARDOUR_UI

10 years agochange tortured GtkUI startup process into something just a little more sane, and...
Paul Davis [Tue, 8 Oct 2013 00:27:04 +0000 (20:27 -0400)]
change tortured GtkUI startup process into something just a little more sane, and remove "stopping" code since that belongs in a destructor

10 years agowindow proxy should delete its window during its destructor
Paul Davis [Tue, 8 Oct 2013 00:17:49 +0000 (20:17 -0400)]
window proxy should delete its window during its destructor

10 years agofix up some aspects of loading from a cmdline session name
Paul Davis [Sun, 6 Oct 2013 20:32:02 +0000 (16:32 -0400)]
fix up some aspects of loading from a cmdline session name

10 years agoMerge branch 'audiothreads' of https://github.com/mojofunk/ardour
Paul Davis [Fri, 4 Oct 2013 18:00:20 +0000 (14:00 -0400)]
Merge branch 'audiothreads' of https://github.com/mojofunk/ardour

10 years agoremove another unnecessary use of libgen.h
Paul Davis [Fri, 4 Oct 2013 17:02:41 +0000 (13:02 -0400)]
remove another unnecessary use of libgen.h

10 years agouse g_strcasecmp() instead of strcasecmp() which doesn't exist with MSVC (some versio...
Paul Davis [Fri, 4 Oct 2013 17:00:59 +0000 (13:00 -0400)]
use g_strcasecmp() instead of strcasecmp() which doesn't exist with MSVC (some versions, at least), part 2

10 years agouse g_strcasecmp() instead of strcasecmp() which doesn't exist with MSVC (some versio...
Paul Davis [Fri, 4 Oct 2013 16:50:03 +0000 (12:50 -0400)]
use g_strcasecmp() instead of strcasecmp() which doesn't exist with MSVC (some versions, at least)

10 years agoswitch from MAXPATHLEN to PATH_MAX, and use <limits.h> not <sys/param.h> for portability
Paul Davis [Fri, 4 Oct 2013 16:46:31 +0000 (12:46 -0400)]
switch from MAXPATHLEN to PATH_MAX, and use <limits.h> not <sys/param.h> for portability

10 years agoremove unnecessary header include
Paul Davis [Fri, 4 Oct 2013 16:46:02 +0000 (12:46 -0400)]
remove unnecessary header include

10 years agoprovide PBD::demangle() even on platforms without HAVE_EXECINFO
Paul Davis [Fri, 4 Oct 2013 16:22:00 +0000 (12:22 -0400)]
provide PBD::demangle() even on platforms without HAVE_EXECINFO

10 years agoremove OSC related cruft from ardour_ui_options.cc
Paul Davis [Fri, 4 Oct 2013 15:46:50 +0000 (11:46 -0400)]
remove OSC related cruft from ardour_ui_options.cc

control surface activation is handled via an entirely separate mechanism now

10 years agoImplement JACKAudioBackend::in_process_thread
Tim Mayberry [Thu, 3 Oct 2013 09:38:58 +0000 (19:38 +1000)]
Implement JACKAudioBackend::in_process_thread

10 years agoMove processing thread list from ARDOUR::Graph into AudioBackend implementation
Tim Mayberry [Wed, 2 Oct 2013 09:40:48 +0000 (19:40 +1000)]
Move processing thread list from ARDOUR::Graph into AudioBackend implementation

10 years agoAdd AudioBackendThread class to support different thread type on windows
Tim Mayberry [Wed, 14 Aug 2013 10:30:09 +0000 (20:30 +1000)]
Add AudioBackendThread class to support different thread type on windows

10 years agofix up crash caused by changes in object creation order and setting the state of...
Paul Davis [Wed, 2 Oct 2013 20:17:22 +0000 (16:17 -0400)]
fix up crash caused by changes in object creation order and setting the state of the click IO object

10 years agodon't ping JACK server 4 times to see if it is already up when ardour starts
Paul Davis [Thu, 26 Sep 2013 02:56:28 +0000 (22:56 -0400)]
don't ping JACK server 4 times to see if it is already up when ardour starts

10 years agofix up enum mess caused by switching from JACK to Engine as the name for jack-related...
Paul Davis [Wed, 25 Sep 2013 22:24:32 +0000 (18:24 -0400)]
fix up enum mess caused by switching from JACK to Engine as the name for jack-related transport sync

This will allow older versions of Ardour to continue to startup when the user sync preference is "JACK",
because the string used by enum_2_string() will still be "JACK".

Versions of ardour3 from git after the enum change until this commit will leave ardour.rc unloaded by old
versions of Ardour ***if*** the user sync choice was "JACK".

10 years agomake information extraction from session file options list robust against some old...
Paul Davis [Wed, 25 Sep 2013 21:59:10 +0000 (17:59 -0400)]
make information extraction from session file options list robust against some old badly formatted session files

Fixes crash experienced by GillesM, where a rogue XML entry caused a segfault

10 years agostart explicitly linking against libtimecode (this needs to happen elsewhere too)
Paul Davis [Wed, 25 Sep 2013 02:22:43 +0000 (22:22 -0400)]
start explicitly linking against libtimecode (this needs to happen elsewhere too)

10 years agofix crash when cmdline provides session name
Paul Davis [Wed, 25 Sep 2013 02:22:16 +0000 (22:22 -0400)]
fix crash when cmdline provides session name

10 years agotighten up layout of session dialog; make button say cancel or quit in difference...
Paul Davis [Tue, 24 Sep 2013 03:13:07 +0000 (23:13 -0400)]
tighten up layout of session dialog; make button say cancel or quit in difference scenarios

10 years agoshrink small-splash.png image by 50%
Paul Davis [Tue, 24 Sep 2013 03:12:42 +0000 (23:12 -0400)]
shrink small-splash.png image by 50%

10 years agouse new Session API to show session SR and disk bit depth in recent sessions list
Paul Davis [Tue, 24 Sep 2013 01:36:13 +0000 (21:36 -0400)]
use new Session API to show session SR and disk bit depth in recent sessions list

10 years agoadd new static functions to get SR and disk sample format from session XML
Paul Davis [Tue, 24 Sep 2013 01:35:51 +0000 (21:35 -0400)]
add new static functions to get SR and disk sample format from session XML

10 years agomove rate_as_string() from EngineControl to utils.cc
Paul Davis [Tue, 24 Sep 2013 01:35:17 +0000 (21:35 -0400)]
move rate_as_string() from EngineControl to utils.cc

10 years agomove announcements frame around in the session dialog and adjust spacing/borders
Paul Davis [Mon, 23 Sep 2013 20:49:24 +0000 (16:49 -0400)]
move announcements frame around in the session dialog and adjust spacing/borders

10 years agomajor rearrangement of startup/session loading code
Paul Davis [Mon, 23 Sep 2013 18:41:52 +0000 (14:41 -0400)]
major rearrangement of startup/session loading code

first-time user code remains in ArdourStartup
session selection/setup moved to SessionDialog
many other cleanups, logic improvements, and so forth to the overall session loading process.
Not 100% finished yet.

10 years agothe output of git describe --tags is not subject to localization, so we do not need...
Paul Davis [Mon, 23 Sep 2013 17:33:28 +0000 (13:33 -0400)]
the output of git describe --tags is not subject to localization, so we do not need LANG= in the environment when it runs

10 years agouse WindowManager/WMProxy to correctly manage the audio/MIDI setup window
Paul Davis [Sun, 22 Sep 2013 23:22:56 +0000 (19:22 -0400)]
use WindowManager/WMProxy to correctly manage the audio/MIDI setup window

10 years agomake session creation from a template work again
Paul Davis [Sun, 22 Sep 2013 15:19:34 +0000 (11:19 -0400)]
make session creation from a template work again

10 years agoremove use-session-as-template option from new session dialog and fix ability to...
Paul Davis [Sat, 21 Sep 2013 17:56:59 +0000 (13:56 -0400)]
remove use-session-as-template option from new session dialog and fix ability to not use a template

Note: using a template is still not actually working ...

10 years agomake sure the template selector has an item visible if there are any
Paul Davis [Sat, 21 Sep 2013 17:22:06 +0000 (13:22 -0400)]
make sure the template selector has an item visible if there are any

10 years agoapply same always-check-display to recent sessions scroller in new session dialog
Paul Davis [Sat, 21 Sep 2013 17:14:33 +0000 (13:14 -0400)]
apply same always-check-display to recent sessions scroller in new session dialog

It turns out that we always create a new ArdourStartup right now, so this and the previous commit
are not actually necessary, but they do pave the way for keeping the dialog around instead

10 years agoreset the visibility of the template selector stuff every time the startup/NSD gets...
Paul Davis [Sat, 21 Sep 2013 16:51:30 +0000 (12:51 -0400)]
reset the visibility of the template selector stuff every time the startup/NSD gets mapped, so that it is always current

10 years agolikely fix for creating new sessions from templates
Paul Davis [Sat, 21 Sep 2013 16:50:45 +0000 (12:50 -0400)]
likely fix for creating new sessions from templates

10 years agoif new session button clicked, clear any selection in recent sessions and mark browse...
Paul Davis [Fri, 20 Sep 2013 20:45:04 +0000 (16:45 -0400)]
if new session button clicked, clear any selection in recent sessions and mark browser unused

10 years agoRevert "actually load new state after creating a session."
Paul Davis [Fri, 20 Sep 2013 20:16:30 +0000 (16:16 -0400)]
Revert "actually load new state after creating a session."

This reverts commit 914ba475de48f72e57bb6ac8a81888ad71cea7fa.

Unclear why I applied this or what it was supposed to do. A new session has no
state.

10 years agomove advanced new session options into an expander, change some wording
Paul Davis [Fri, 20 Sep 2013 20:05:54 +0000 (16:05 -0400)]
move advanced new session options into an expander, change some wording

10 years agoMerge branch 'master' of https://github.com/nmains/ardour
Paul Davis [Fri, 20 Sep 2013 19:21:14 +0000 (15:21 -0400)]
Merge branch 'master' of https://github.com/nmains/ardour

10 years agorather hacky fix for the change of the SyncSource > JACK enum to SyncSource > Engine
Paul Davis [Fri, 20 Sep 2013 18:30:50 +0000 (14:30 -0400)]
rather hacky fix for the change of the SyncSource > JACK enum to SyncSource > Engine

This is needed in order to get ardour started if ardour.rc names "JACK" as the sync source

10 years agochanges to integrate new/recent/browse in new session dialog.
Paul Davis [Fri, 20 Sep 2013 18:17:59 +0000 (14:17 -0400)]
changes to integrate new/recent/browse in new session dialog.

Probably some errors/mistakes in here and no doubt some improvements to be done.

10 years agoswitch from JACK_Slave to Engine_Slave
Paul Davis [Thu, 19 Sep 2013 21:34:23 +0000 (17:34 -0400)]
switch from JACK_Slave to Engine_Slave

10 years agoreallow changing bufsize AND sample rate when we are in control, because this is...
Paul Davis [Thu, 19 Sep 2013 20:48:05 +0000 (16:48 -0400)]
reallow changing bufsize AND sample rate when we are in control, because this is cool

10 years agomissing initialization
Paul Davis [Thu, 19 Sep 2013 20:17:47 +0000 (16:17 -0400)]
missing initialization

10 years agoshow a different audio/MIDI option screen if JACK is already running. try to fix...
Paul Davis [Thu, 19 Sep 2013 19:03:20 +0000 (15:03 -0400)]
show a different audio/MIDI option screen if JACK is already running. try to fix problem with using AudioBackend::<property-value>() functions before anything has been set.

10 years agomore excision of "JACK" from labels, menu items, etc.
Paul Davis [Wed, 18 Sep 2013 02:25:21 +0000 (22:25 -0400)]
more excision of "JACK" from labels, menu items, etc.

NOTE: users will lose the sample rate/latency display in the status bar display. Not yet sure what to do about this

10 years agominor code changes
Paul Davis [Wed, 18 Sep 2013 01:22:22 +0000 (21:22 -0400)]
minor code changes

10 years agosubstantive changes to allow the audio/MIDI setup dialog to change settings as intended
Paul Davis [Wed, 18 Sep 2013 01:09:13 +0000 (21:09 -0400)]
substantive changes to allow the audio/MIDI setup dialog to change settings as intended

So far only tested with JACK backend, but expected to be more correct for other backends too

10 years agoremove JACK related action definitions (audio/MIDI setup is where this happens now)
Paul Davis [Wed, 18 Sep 2013 01:07:44 +0000 (21:07 -0400)]
remove JACK related action definitions (audio/MIDI setup is where this happens now)

10 years agochange return type on {disconnect_from,reconnect_to}_engine() and make public so...
Paul Davis [Wed, 18 Sep 2013 01:07:14 +0000 (21:07 -0400)]
change return type on {disconnect_from,reconnect_to}_engine() and make public so that we can use these when doing intentional disconnects without popping up the "HALTED" dialog

10 years agoremove JACK related menu items (audio/MIDI setup is where this happens now)
Paul Davis [Wed, 18 Sep 2013 01:06:15 +0000 (21:06 -0400)]
remove JACK related menu items (audio/MIDI setup is where this happens now)

10 years agoactually load new state after creating a session.
nick_m [Tue, 17 Sep 2013 16:02:31 +0000 (02:02 +1000)]
actually load new state after creating a session.

10 years agoadd basic display of existing MIDI ports to audio/MIDI setup
Paul Davis [Tue, 17 Sep 2013 14:01:24 +0000 (10:01 -0400)]
add basic display of existing MIDI ports to audio/MIDI setup

10 years agofix crash caused by trying to unregister null ports
Paul Davis [Tue, 17 Sep 2013 14:01:02 +0000 (10:01 -0400)]
fix crash caused by trying to unregister null ports

10 years agocorrectly restore zoom focus state after restart (from nick mainsbridge)
Paul Davis [Tue, 17 Sep 2013 02:32:04 +0000 (22:32 -0400)]
correctly restore zoom focus state after restart (from nick mainsbridge)

10 years agominor fixups for audio/MIDI setup spin buttons (now editable, as they should be)
Paul Davis [Tue, 17 Sep 2013 02:03:59 +0000 (22:03 -0400)]
minor fixups for audio/MIDI setup spin buttons (now editable, as they should be)

10 years agocheck for an existing PublicEditor instance AFTER attempting to handle a key press...
Paul Davis [Tue, 17 Sep 2013 02:03:27 +0000 (22:03 -0400)]
check for an existing PublicEditor instance AFTER attempting to handle a key press in a window that has called relay_key_press(), so that normal key handling works there (e.g. audio/MIDI setup)

10 years agoa few DEBUG_TRACE improvements
Paul Davis [Tue, 17 Sep 2013 02:02:36 +0000 (22:02 -0400)]
a few DEBUG_TRACE improvements

10 years agoend latency detection if AMS window closed while running detection (plus some non...
Paul Davis [Mon, 16 Sep 2013 22:47:30 +0000 (18:47 -0400)]
end latency detection if AMS window closed while running detection (plus some non-functioning changes to try to get spinbutton text entry to work

10 years agovarious bits of polish for the latency tab of audio/midi setup dialog
Paul Davis [Mon, 16 Sep 2013 19:21:32 +0000 (15:21 -0400)]
various bits of polish for the latency tab of audio/midi setup dialog

10 years agomore session construction order changes, and removal of n_physical_{inputs,outputs...
Paul Davis [Mon, 16 Sep 2013 16:08:19 +0000 (12:08 -0400)]
more session construction order changes, and removal of n_physical_{inputs,outputs} members which were (a) not initialized early enough (b) not used anywhere except monitor bus connection.

Things almost make sense now.

10 years agoupdate buffer size duration (msecs) while displaying saved audio/MIDI setup state
Paul Davis [Mon, 16 Sep 2013 15:10:05 +0000 (11:10 -0400)]
update buffer size duration (msecs) while displaying saved audio/MIDI setup state

10 years agofix missing initialization of two Session members, which fixes a crash during quit...
Paul Davis [Mon, 16 Sep 2013 14:23:37 +0000 (10:23 -0400)]
fix missing initialization of two Session members, which fixes a crash during quit-without-finished-session

10 years agocommit some logic problems with the EngineDialog when change the driver/device name...
Paul Davis [Mon, 16 Sep 2013 14:18:25 +0000 (10:18 -0400)]
commit some logic problems with the EngineDialog when change the driver/device name combos

10 years agofix language issue
Paul Davis [Mon, 16 Sep 2013 14:07:52 +0000 (10:07 -0400)]
fix language issue

10 years agoallow waf to handle inconsistent case where cwiid.h is present but not the pkg-config...
Paul Davis [Mon, 16 Sep 2013 14:07:27 +0000 (10:07 -0400)]
allow waf to handle inconsistent case where cwiid.h is present but not the pkg-config file

10 years agofix ordering in session construction so that new sessions and existing ones both...
Paul Davis [Mon, 16 Sep 2013 13:57:22 +0000 (09:57 -0400)]
fix ordering in session construction so that new sessions and existing ones both work

10 years agoreally fix build issues after removal of "using" directives
Paul Davis [Sat, 14 Sep 2013 20:34:08 +0000 (16:34 -0400)]
really fix build issues after removal of "using" directives

10 years agofix build issues after removal of "using" directives
Paul Davis [Sat, 14 Sep 2013 20:24:21 +0000 (16:24 -0400)]
fix build issues after removal of "using" directives

10 years agocerr output when JACK halt callback is executed
Paul Davis [Sat, 14 Sep 2013 20:18:17 +0000 (16:18 -0400)]
cerr output when JACK halt callback is executed

10 years agofix return value from thread creation function when not connected to JACK
Paul Davis [Sat, 14 Sep 2013 20:17:49 +0000 (16:17 -0400)]
fix return value from thread creation function when not connected to JACK

10 years agomove creation of Graph till after we have the engine running, since we need access...
Paul Davis [Sat, 14 Sep 2013 20:17:24 +0000 (16:17 -0400)]
move creation of Graph till after we have the engine running, since we need access to the backend

10 years agoMerge branch 'master--arm' of https://github.com/nphilipp/ardour
Paul Davis [Fri, 13 Sep 2013 16:58:29 +0000 (12:58 -0400)]
Merge branch 'master--arm' of https://github.com/nphilipp/ardour

10 years agouse visibility control on JACK audio backend, so that we can import this change into...
Paul Davis [Fri, 13 Sep 2013 16:32:50 +0000 (12:32 -0400)]
use visibility control on JACK audio backend, so that we can import this change into windows branch

10 years agoupdate JACK backend to use new inheritance structure for AudioBackend
Paul Davis [Fri, 13 Sep 2013 15:21:43 +0000 (11:21 -0400)]
update JACK backend to use new inheritance structure for AudioBackend

10 years agochange inheritance so that an AudioBackend IS-A PortEngine
Paul Davis [Fri, 13 Sep 2013 15:21:15 +0000 (11:21 -0400)]
change inheritance so that an AudioBackend IS-A PortEngine

This allows a derived (concrete) implementation to share information (e.g. sample rate, buffer size)
between the audio backend side of things and the port management side of things.

10 years agodon't confuse arm with i686
Nils Philippsen [Thu, 12 Sep 2013 15:24:28 +0000 (17:24 +0200)]
don't confuse arm with i686

10 years agoexplanatory comment
Paul Davis [Fri, 13 Sep 2013 14:19:01 +0000 (10:19 -0400)]
explanatory comment

10 years agoremove some debug output messages
Paul Davis [Thu, 12 Sep 2013 21:24:45 +0000 (17:24 -0400)]
remove some debug output messages

10 years agodon't stop metering thread when session is removed; move engine-setup code into its...
Paul Davis [Thu, 12 Sep 2013 21:06:21 +0000 (17:06 -0400)]
don't stop metering thread when session is removed; move engine-setup code into its own method. sorry, ardour build-from-source folk :)

10 years agovtl: export selected range
Robin Gareus [Thu, 12 Sep 2013 20:46:11 +0000 (22:46 +0200)]
vtl: export selected range

10 years agotweak narrow-mixer-strip meters: nettings vs the_CLA. Round 3.
Robin Gareus [Wed, 11 Sep 2013 16:32:39 +0000 (18:32 +0200)]
tweak narrow-mixer-strip meters: nettings vs the_CLA. Round 3.

10 years agolots of changes to auto-start (and stop) the backend for latency measurements, and...
Paul Davis [Thu, 12 Sep 2013 20:28:51 +0000 (16:28 -0400)]
lots of changes to auto-start (and stop) the backend for latency measurements, and continuing work on the session construction/engine configuration flow

10 years agoreinstate unblocking-of-connections in session setup, accidentally dropped in reorgan...
Paul Davis [Thu, 12 Sep 2013 20:27:58 +0000 (16:27 -0400)]
reinstate unblocking-of-connections in session setup, accidentally dropped in reorganization work

10 years agoprevent key press in pre-main-window dialog(s) from crashing the program because...
Paul Davis [Thu, 12 Sep 2013 18:39:17 +0000 (14:39 -0400)]
prevent key press in pre-main-window dialog(s) from crashing the program because there is no editor window to forward key presses to

10 years agochange names, add comment, improve return type to avoid extra call to get EngineContr...
Paul Davis [Thu, 12 Sep 2013 16:26:59 +0000 (12:26 -0400)]
change names, add comment, improve return type to avoid extra call to get EngineControl::State*

10 years agoadd AudioBackendNativeThread to serve the same role as jack_native_thread_t
Paul Davis [Thu, 12 Sep 2013 15:29:47 +0000 (11:29 -0400)]
add AudioBackendNativeThread to serve the same role as jack_native_thread_t

10 years agoalways add a timeout value of 200msec to jack, just like qjackctl does.
Paul Davis [Thu, 12 Sep 2013 01:00:21 +0000 (21:00 -0400)]
always add a timeout value of 200msec to jack, just like qjackctl does.

THIS IS A HACK. LONG TERM GOAL: understand why ardour gets zombified on the way up.

10 years ago*maybe* fix issues with zombification during session loading
Paul Davis [Wed, 11 Sep 2013 20:33:40 +0000 (16:33 -0400)]
*maybe* fix issues with zombification during session loading

10 years agomake use of measured latency values to set dialog controls, and use actual port laten...
Paul Davis [Wed, 11 Sep 2013 17:02:32 +0000 (13:02 -0400)]
make use of measured latency values to set dialog controls, and use actual port latency to compute extra delay

10 years agoremove some configure time tests from libs/ardour regarding JACK which are no longer...
Paul Davis [Wed, 11 Sep 2013 16:44:21 +0000 (12:44 -0400)]
remove some configure time tests from libs/ardour regarding JACK which are no longer relevant

10 years agoremove unused members and code from EngineControl dialog (related to different device...
Paul Davis [Wed, 11 Sep 2013 16:05:51 +0000 (12:05 -0400)]
remove unused members and code from EngineControl dialog (related to different devices for input+output)

10 years agomake quit work even when latency measurement is in progress
Paul Davis [Wed, 11 Sep 2013 14:06:02 +0000 (10:06 -0400)]
make quit work even when latency measurement is in progress

10 years agofix handling of new session
Paul Davis [Wed, 11 Sep 2013 13:59:56 +0000 (09:59 -0400)]
fix handling of new session

defer save state till after everything done in post_engine_init() is complete.

10 years agomore tweaks to latency measurement
Paul Davis [Wed, 11 Sep 2013 03:25:15 +0000 (23:25 -0400)]
more tweaks to latency measurement

don't open ports till absolutely necessary (store names for future use).

tidy up parts of the dialog (tab)

10 years agobasic functionality for hardware latency measurement
Paul Davis [Wed, 11 Sep 2013 02:58:33 +0000 (22:58 -0400)]
basic functionality for hardware latency measurement

10 years agomany changes relating to session construction and audioengine interaction
Paul Davis [Tue, 10 Sep 2013 19:41:19 +0000 (15:41 -0400)]
many changes relating to session construction and audioengine interaction

every session member is now initialized using C++ constructor syntax

session construction reordered to clarify the split(s) between work
where the engine is not relevant and work where is it is. this
split is still not 100% obvious, but is enormously clearer than
previously.

if engine/backend are not running as session is created, and the SR
of the sample rate is known, attempt to force backend to that value.

10 years agonew generic MIDI binding map for Novation Impulse 61 from Alexandre Prokoudine
Paul Davis [Tue, 10 Sep 2013 12:51:06 +0000 (08:51 -0400)]
new generic MIDI binding map for Novation Impulse 61 from Alexandre Prokoudine

10 years agostart reordering of Session initialization
Paul Davis [Tue, 10 Sep 2013 02:40:54 +0000 (22:40 -0400)]
start reordering of Session initialization

the goal is to allow a clear demarcation of where we need
the audioengine and have existing data parameters (e.g. sample rate)
for the session so that we can coerce the engine (if possible)
to match to session values.

also, to rationalize construction even more and use C++
constructor syntax as much as possible.