ardour.git
10 years agoMerge branch 'master' into windows+cc
John Emmas [Mon, 14 Oct 2013 18:31:22 +0000 (19:31 +0100)]
Merge branch 'master' into windows+cc

Conflicts (hopefully resolved):
gtk2_ardour/ardour_ui.cc

10 years ago'PBD::demangle()' - Minor modification to keep MSVC happy
John Emmas [Mon, 14 Oct 2013 16:40:15 +0000 (17:40 +0100)]
'PBD::demangle()' - Minor modification to keep MSVC happy

10 years ago'AudioEngine::discover_backends()' - When building a debuggable backend module on...
John Emmas [Mon, 14 Oct 2013 16:19:39 +0000 (17:19 +0100)]
'AudioEngine::discover_backends()' - When building a debuggable backend module on Windows (e.g. jack_backend.dll) accommodate the Windows convention that Debug builds generally have a suffix added to their name

10 years ago'gtk2_ardour' - Add some further header files to satisfy MSVC build
John Emmas [Mon, 14 Oct 2013 16:14:23 +0000 (17:14 +0100)]
'gtk2_ardour' - Add some further header files to satisfy MSVC build

10 years ago'gtk2_ardour' - Harmonize usage of 'COMPILER_MINGW' and 'COMPILER_MSVC' where appropriate
John Emmas [Mon, 14 Oct 2013 16:07:45 +0000 (17:07 +0100)]
'gtk2_ardour' - Harmonize usage of 'COMPILER_MINGW' and 'COMPILER_MSVC' where appropriate

10 years ago'gtk2_ardour' - Harmonize '__WIN32__', 'OS_WIN32' etc, etc. Use 'PLATFORM_WINDOWS...
John Emmas [Mon, 14 Oct 2013 16:05:42 +0000 (17:05 +0100)]
'gtk2_ardour' - Harmonize '__WIN32__', 'OS_WIN32' etc, etc. Use 'PLATFORM_WINDOWS' instead

10 years ago'gtk2_ardour' - Harmonize '__WIN32__', 'OS_WIN32' etc, etc. Use 'PLATFORM_WINDOWS...
John Emmas [Mon, 14 Oct 2013 16:00:28 +0000 (17:00 +0100)]
'gtk2_ardour' - Harmonize '__WIN32__', 'OS_WIN32' etc, etc. Use 'PLATFORM_WINDOWS' instead

10 years agouse processor owner to set GUIs opened by a ProcessorBox, not current route name
Paul Davis [Mon, 14 Oct 2013 15:14:38 +0000 (11:14 -0400)]
use processor owner to set GUIs opened by a ProcessorBox, not current route name

Since the GUIs remain open across changes in track selection for the editor mixer now, the current route name
is not always correct as the owner/location of the Processor.

10 years agoadd a back-pointer to the owner of a Processor
Paul Davis [Mon, 14 Oct 2013 15:12:50 +0000 (11:12 -0400)]
add a back-pointer to the owner of a Processor

Use SessionObject* rather than Route so that per-region plugins will be possible in the future.

10 years agochanges that will help fix a crash related to plugin window visibility. some work...
Paul Davis [Mon, 14 Oct 2013 02:41:17 +0000 (22:41 -0400)]
changes that will help fix a crash related to plugin window visibility. some work still to be done

10 years agotweak API of WindowProxy, and remove all unnecessary get() calls in functions where...
Paul Davis [Mon, 14 Oct 2013 02:40:39 +0000 (22:40 -0400)]
tweak API of WindowProxy, and remove all unnecessary get() calls in functions where, if we have no window, there is nothing to do

10 years agoenable videotimeline on OSX
Robin Gareus [Sat, 12 Oct 2013 21:04:37 +0000 (23:04 +0200)]
enable videotimeline on OSX

10 years agoexport video-range: add to context menu
Robin Gareus [Sat, 12 Oct 2013 20:55:54 +0000 (22:55 +0200)]
export video-range: add to context menu

10 years agovideo-range export tweaks:
Robin Gareus [Sat, 12 Oct 2013 19:25:05 +0000 (21:25 +0200)]
video-range export tweaks:

* quantize range to video-frame boundaries
* warn if range is empty or does not include video

10 years agodo not use delete_when_idle() to delete a plugin UI because an entirely separate...
Paul Davis [Sat, 12 Oct 2013 20:44:50 +0000 (16:44 -0400)]
do not use delete_when_idle() to delete a plugin UI because an entirely separate mechanism exists for that

10 years agorevert part of 4091ff175c5204 that caused window/sizing chaos. silly paul
Paul Davis [Sat, 12 Oct 2013 19:37:55 +0000 (15:37 -0400)]
revert part of 4091ff175c5204 that caused window/sizing chaos. silly paul

10 years agorework things for Audio/MIDI setup dialog a bit: no tabs being the most noticeable...
Paul Davis [Sat, 12 Oct 2013 18:57:32 +0000 (14:57 -0400)]
rework things for Audio/MIDI setup dialog a bit: no tabs being the most noticeable change

10 years ago1 bug fix plus padding control for ArdourButton
Paul Davis [Sat, 12 Oct 2013 18:56:57 +0000 (14:56 -0400)]
1 bug fix plus padding control for ArdourButton

10 years agopost a dialog about a session being opened in read-only mode (if it happens)
Paul Davis [Sat, 12 Oct 2013 15:58:22 +0000 (11:58 -0400)]
post a dialog about a session being opened in read-only mode (if it happens)

10 years agofix inability to export twice
Paul Davis [Sat, 12 Oct 2013 15:07:57 +0000 (11:07 -0400)]
fix inability to export twice

10 years agominor adjustments to latency measurement UI stuff
Paul Davis [Sat, 12 Oct 2013 14:04:20 +0000 (10:04 -0400)]
minor adjustments to latency measurement UI stuff

10 years agoadapt AudioEngine to new AudioBackend API
Paul Davis [Sat, 12 Oct 2013 14:03:50 +0000 (10:03 -0400)]
adapt AudioEngine to new AudioBackend API

10 years agoadapt JACK audiobackend to pay attention to new _start() API related to latency measu...
Paul Davis [Sat, 12 Oct 2013 14:03:15 +0000 (10:03 -0400)]
adapt JACK audiobackend to pay attention to new _start() API related to latency measurement

10 years agoslightly change AudioBackend API to allow specifying that the device is being started...
Paul Davis [Sat, 12 Oct 2013 14:02:37 +0000 (10:02 -0400)]
slightly change AudioBackend API to allow specifying that the device is being started for latency measurement

We don't want any existing latency settings used when re-measuring latency measurements.

10 years agoremove erroneous ` in string
Paul Davis [Sat, 12 Oct 2013 13:59:33 +0000 (09:59 -0400)]
remove erroneous ` in string

10 years agoupdate OS X packaging script to include backends
Paul Davis [Fri, 11 Oct 2013 21:12:37 +0000 (17:12 -0400)]
update OS X packaging script to include backends

10 years agoupdate Linux packaging script to include backends
Paul Davis [Fri, 11 Oct 2013 21:11:44 +0000 (17:11 -0400)]
update Linux packaging script to include backends

10 years agodon't use a possibly non-existent window as a transient parent when showing a dialog...
Paul Davis [Fri, 11 Oct 2013 19:58:51 +0000 (15:58 -0400)]
don't use a possibly non-existent window as a transient parent when showing a dialog about engine failure

10 years agoMerge branch 'windows' into windows+cc
John Emmas [Fri, 11 Oct 2013 17:23:53 +0000 (18:23 +0100)]
Merge branch 'windows' into windows+cc

10 years agoFix ardour tests to work with new AudioEngine/Backends changes
Tim Mayberry [Fri, 11 Oct 2013 02:02:07 +0000 (12:02 +1000)]
Fix ardour tests to work with new AudioEngine/Backends changes

10 years agoAdd AudioEngine::set_default_backend
Tim Mayberry [Fri, 11 Oct 2013 02:01:15 +0000 (12:01 +1000)]
Add AudioEngine::set_default_backend

10 years agoUse test-env.sh in run-session-tests.sh
Tim Mayberry [Fri, 16 Aug 2013 11:41:55 +0000 (21:41 +1000)]
Use test-env.sh in run-session-tests.sh

Also make the script executable

10 years agoWrite state data from automation list test to check why test is failing
Tim Mayberry [Sat, 10 Aug 2013 08:56:59 +0000 (18:56 +1000)]
Write state data from automation list test to check why test is failing

10 years agoAdd arg to test function to be able to prefix test output directory
Tim Mayberry [Sat, 10 Aug 2013 08:49:45 +0000 (18:49 +1000)]
Add arg to test function to be able to prefix test output directory

This makes it much easier to find test output from a specific test

10 years agoreturn bool in test util function to check writing xml to file is successful
Tim Mayberry [Sat, 10 Aug 2013 08:26:47 +0000 (18:26 +1000)]
return bool in test util function to check writing xml to file is successful

10 years agoUse test_search_path to find test data files for automation test
Tim Mayberry [Sat, 10 Aug 2013 06:09:28 +0000 (16:09 +1000)]
Use test_search_path to find test data files for automation test

10 years agoUpdate test to use correct SourceFactory::createWritable API
Tim Mayberry [Sat, 10 Aug 2013 05:30:38 +0000 (15:30 +1000)]
Update test to use correct SourceFactory::createWritable API

10 years agoDelete test_globals.h/cc now that the contents has moved to test_common.h/cc
Tim Mayberry [Sat, 10 Aug 2013 05:19:36 +0000 (15:19 +1000)]
Delete test_globals.h/cc now that the contents has moved to test_common.h/cc

10 years agoAdd get_test_sample_rate to common test functions in libardour tests
Tim Mayberry [Sat, 10 Aug 2013 03:14:52 +0000 (13:14 +1000)]
Add get_test_sample_rate to common test functions in libardour tests

10 years agoFix script used to run libardour tests
Tim Mayberry [Wed, 24 Jul 2013 08:19:05 +0000 (18:19 +1000)]
Fix script used to run libardour tests

10 years agominor tweaks to audio/MIDI setup window
Paul Davis [Fri, 11 Oct 2013 01:07:17 +0000 (21:07 -0400)]
minor tweaks to audio/MIDI setup window

10 years agosome slightly hackish changes to make it possible to use the new internal ALSA midi...
Paul Davis [Thu, 10 Oct 2013 20:54:46 +0000 (16:54 -0400)]
some slightly hackish changes to make it possible to use the new internal ALSA midi client (soon to become a driver, however)

10 years agomore fixes and rationalizations for MIDI option handling in the audio MIDI setup
Paul Davis [Thu, 10 Oct 2013 20:18:27 +0000 (16:18 -0400)]
more fixes and rationalizations for MIDI option handling in the audio MIDI setup

10 years agoadd API to get current MIDI option from an audio/MIDI backend
Paul Davis [Thu, 10 Oct 2013 20:18:00 +0000 (16:18 -0400)]
add API to get current MIDI option from an audio/MIDI backend

10 years agoadd API to get current MIDI option from an audio/MIDI backend
Paul Davis [Thu, 10 Oct 2013 20:17:46 +0000 (16:17 -0400)]
add API to get current MIDI option from an audio/MIDI backend

10 years agofix up parsing of send gain MIDI bindings so that they actually work
Paul Davis [Thu, 10 Oct 2013 20:16:59 +0000 (16:16 -0400)]
fix up parsing of send gain MIDI bindings so that they actually work

10 years agobasic use of new backend MIDI options
Paul Davis [Thu, 10 Oct 2013 16:59:33 +0000 (12:59 -0400)]
basic use of new backend MIDI options

10 years agoadd JACK backend support for MIDI option discovery
Paul Davis [Thu, 10 Oct 2013 16:59:11 +0000 (12:59 -0400)]
add JACK backend support for MIDI option discovery

10 years agoadd API to AudioBackend to allow discovery of possible MIDI I/O options
Paul Davis [Thu, 10 Oct 2013 16:58:38 +0000 (12:58 -0400)]
add API to AudioBackend to allow discovery of possible MIDI I/O options

10 years agonicely handle the (should-never-happen) case of no audio/MIDI backends being detected
Paul Davis [Thu, 10 Oct 2013 15:24:16 +0000 (11:24 -0400)]
nicely handle the (should-never-happen) case of no audio/MIDI backends being detected

10 years agomerge with master, fixing conflicts in 3 wscript files
Paul Davis [Wed, 9 Oct 2013 18:00:42 +0000 (14:00 -0400)]
Merge ... master, fixing conflicts in 3 wscript files

10 years agowhen looking for backends, search for *.dll as well as *.so and *.dylib
Paul Davis [Wed, 9 Oct 2013 17:57:00 +0000 (13:57 -0400)]
when looking for backends, search for *.dll as well as *.so and *.dylib

10 years agoreduce version requirement for JACK
Paul Davis [Tue, 8 Oct 2013 21:12:20 +0000 (17:12 -0400)]
reduce version requirement for JACK

10 years agomove JACK configuration test(s) down to where they belong (in libs/backend/jack)
Paul Davis [Tue, 8 Oct 2013 20:13:39 +0000 (16:13 -0400)]
move JACK configuration test(s) down to where they belong (in libs/backend/jack)

10 years agoremove link-time use of JACK, since it is now dlopen'ed by the chosen backend
Paul Davis [Tue, 8 Oct 2013 18:16:13 +0000 (14:16 -0400)]
remove link-time use of JACK, since it is now dlopen'ed by the chosen backend

10 years agorestore jack timebase master and jack session callback functionality (moved into...
Paul Davis [Tue, 8 Oct 2013 18:02:03 +0000 (14:02 -0400)]
restore jack timebase master and jack session callback functionality (moved into the JACK backend)

10 years ago-arestore jack timebase master and jack session callback functionality (moved into...
Paul Davis [Tue, 8 Oct 2013 18:01:43 +0000 (14:01 -0400)]
-arestore jack timebase master and jack session callback functionality (moved into the JACK backend)

10 years agoupdated DE translation from edgar aichinger
Paul Davis [Tue, 8 Oct 2013 16:22:49 +0000 (12:22 -0400)]
updated DE translation from edgar aichinger

10 years agoupdated DE translation from edgar aichinger
Paul Davis [Tue, 8 Oct 2013 16:22:08 +0000 (12:22 -0400)]
updated DE translation from edgar aichinger

10 years agofix some issues with window flow when session loading fails; shrink "New Session...
Paul Davis [Tue, 8 Oct 2013 16:18:27 +0000 (12:18 -0400)]
fix some issues with window flow when session loading fails; shrink "New Session" button in session setup dialog

10 years agopossible relief for snapshot loading
Paul Davis [Tue, 8 Oct 2013 00:46:10 +0000 (20:46 -0400)]
possible relief for snapshot loading

10 years agoremove debug output
Paul Davis [Tue, 8 Oct 2013 00:30:28 +0000 (20:30 -0400)]
remove debug output

10 years agouse AudioEngine destructor to do necessary stuff when shutting it down, and remove...
Paul Davis [Tue, 8 Oct 2013 00:30:06 +0000 (20:30 -0400)]
use AudioEngine destructor to do necessary stuff when shutting it down, and remove unused Config stuff in AudioEngine

10 years agochange return type on ARDOUR::cleanup() since nobody cares what it returns
Paul Davis [Tue, 8 Oct 2013 00:29:05 +0000 (20:29 -0400)]
change return type on ARDOUR::cleanup() since nobody cares what it returns

10 years agodelete the UI from main() to get full cleanup
Paul Davis [Tue, 8 Oct 2013 00:28:20 +0000 (20:28 -0400)]
delete the UI from main() to get full cleanup

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 'master' into windows+cc
John Emmas [Sun, 6 Oct 2013 10:56:03 +0000 (11:56 +0100)]
Merge branch 'master' into windows+cc

Conflicts (hopefully resolved):
gtk2_ardour/ardour_ui.cc
gtk2_ardour/ardour_ui.h
gtk2_ardour/ardour_ui_options.cc

10 years agoMiscellaneous additions to 'msvc_extra_headers'
John Emmas [Sun, 6 Oct 2013 10:01:25 +0000 (11:01 +0100)]
Miscellaneous additions to 'msvc_extra_headers'

10 years ago'gtk2_ardour' - In 'Note' c'tor, don't try to set 'rectangle->name' unless 'CANVAS_DE...
John Emmas [Sun, 6 Oct 2013 10:00:10 +0000 (11:00 +0100)]
'gtk2_ardour' - In 'Note' c'tor, don't try to set 'rectangle->name' unless 'CANVAS_DEBUG' is defined

10 years ago'gtk2_ardour' - One further Glib::usleep needed
John Emmas [Sun, 6 Oct 2013 09:52:41 +0000 (10:52 +0100)]
'gtk2_ardour' - One further Glib::usleep needed

10 years ago'gtk2_ardour' - Some further casting
John Emmas [Sun, 6 Oct 2013 09:50:45 +0000 (10:50 +0100)]
'gtk2_ardour' - Some further casting

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 ago'gtk2_ardour' - Make sure that 'getpid()' can be found when building with MSVC
John Emmas [Thu, 3 Oct 2013 08:57:25 +0000 (09:57 +0100)]
'gtk2_ardour' - Make sure that 'getpid()' can be found when building with MSVC

10 years ago'gtk2_ardour' - Use 'const_iterator' where appropriate, instead of 'iterator'
John Emmas [Thu, 3 Oct 2013 08:52:39 +0000 (09:52 +0100)]
'gtk2_ardour' - Use 'const_iterator' where appropriate, instead of 'iterator'

10 years ago'gtk2_ardour' - Try 'lrintf' instead of 'rintf' which isn't available in MSVC
John Emmas [Thu, 3 Oct 2013 08:50:34 +0000 (09:50 +0100)]
'gtk2_ardour' - Try 'lrintf' instead of 'rintf' which isn't available in MSVC

10 years ago'gtk2_ardour' - 'std::isinf' + 'std::isnan' are not available in MSVC (at least,...
John Emmas [Thu, 3 Oct 2013 08:48:19 +0000 (09:48 +0100)]
'gtk2_ardour' - 'std::isinf' + 'std::isnan' are not available in MSVC (at least, not VC8)

10 years ago'gtk2_ardour' - When building with MSVC, use 'std::min' + 'std::max' rather than...
John Emmas [Thu, 3 Oct 2013 08:43:55 +0000 (09:43 +0100)]
'gtk2_ardour' - When building with MSVC, use 'std::min' + 'std::max' rather than 'fmin' + 'fmax'

10 years ago'gtk2_ardour' - Specify 'Glib::usleep' where needed (global ::usleep is not available...
John Emmas [Thu, 3 Oct 2013 08:34:52 +0000 (09:34 +0100)]
'gtk2_ardour' - Specify 'Glib::usleep' where needed (global ::usleep is not available for MSVC)

10 years ago'gtk2_ardour' - Use 'floor / floorf' instead of 'trunc / truncf'
John Emmas [Thu, 3 Oct 2013 08:32:08 +0000 (09:32 +0100)]
'gtk2_ardour' - Use 'floor / floorf' instead of 'trunc / truncf'

10 years ago'gtk2_ardour' - Use 'GStatBuf' instead of 'struct stat'
John Emmas [Thu, 3 Oct 2013 08:27:40 +0000 (09:27 +0100)]
'gtk2_ardour' - Use 'GStatBuf' instead of 'struct stat'

10 years ago'gtk2_ardour' - Use 'std::vector' to implement an array whose size is unknown (requir...
John Emmas [Thu, 3 Oct 2013 08:12:02 +0000 (09:12 +0100)]
'gtk2_ardour' - Use 'std::vector' to implement an array whose size is unknown (required to be buildable with MSVC)

10 years ago'gtk2_ardour' - Add namespaces + casting where necessary + general bits of 'correctne...
John Emmas [Thu, 3 Oct 2013 08:06:56 +0000 (09:06 +0100)]
'gtk2_ardour' - Add namespaces + casting where necessary + general bits of 'correctness' to keep MSVC happy

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 agoAdd a header file guard (to prevent multiple #inclusion)
John Emmas [Thu, 26 Sep 2013 14:17:40 +0000 (15:17 +0100)]
Add a header file guard (to prevent multiple #inclusion)

10 years agoDeliberately specify 'Gtk::manage' where necessary (avoids creating ambiguities when...
John Emmas [Thu, 26 Sep 2013 10:47:17 +0000 (11:47 +0100)]
Deliberately specify 'Gtk::manage' where necessary (avoids creating ambiguities when we #include this header file elsewhere)

10 years agoA further change which needs to be tested on the other compilers
John Emmas [Thu, 26 Sep 2013 10:01:15 +0000 (11:01 +0100)]
A further change which needs to be tested on the other compilers

(splitting a long string into 2 x concatenated strings)

10 years ago'gtk2_ardour (msvc)' - Some changes needed before anything at all will compile
John Emmas [Thu, 26 Sep 2013 09:58:07 +0000 (10:58 +0100)]
'gtk2_ardour (msvc)' - Some changes needed before anything at all will compile

For the most part, the compilation problems are caused by lines such as:-

      WM::Proxy<ThemeManager> theme_manager;

Before MSVC will compile the above it needs to know that the specified object type contains an appropriate (i.e. publicly available) default c'tor. Therefore the corresponding header file needs to get #included, rather than just declaring that type to be a class (whilst all classes have a default c'tor, it needn't necessarily be public). The remaining changes are mostly minor.

This commit should be tested ASAP to make sure it doesn't upset the other compilers.