13
0
Commit Graph

5316 Commits

Author SHA1 Message Date
6542ce76d0 Don't use trylock in assertions on windows as it will fail
glib uses TryEnterCriticalSection on windows which will return true
if the lock as able to be locked *or* is already locked by the current
thread.
2013-07-13 16:57:04 -04:00
1fd2412f5b Add config/data filesystem paths to search on windows 2013-07-13 16:56:12 -04:00
ccdc6fcd6a Add DEBUG_TRACE output to file utility functions in libpbd 2013-07-13 16:55:40 -04:00
550eeecc63 Add header include required by mingw compiler 2013-07-13 16:44:59 -04:00
48f8863b2c Use g_mkstemp in audiographer for portability 2013-07-13 16:44:37 -04:00
3be0f0aa0b Use pthread_name instead of pthread_self for portability 2013-07-13 16:44:03 -04:00
57066732ca Use pthread_name instead of pthread_self for portability 2013-07-13 16:43:50 -04:00
ad89d1e031 Use custom comparator in threadmap for pthread impl with mingw 2013-07-13 08:44:58 -04:00
eddcc868ba Disable non-realtime midi ports in windows build - THIS NEEDS FIXING 2013-07-13 08:26:54 -04:00
5bae4373c7 implement visual-sensitivity (gray out) for faders
Note: bar-controller sensitivity state is not yet set if
automation-mode changes to/from play, but the widget now
supports that.
2013-07-12 19:07:07 +02:00
e0bbc0b435 minor peak-meter performance tweak
* redraw only missing parts of the outside rectangle,
* don't redraw RMS meter if value has not changed
2013-07-12 17:56:42 +02:00
01ed4f3388 undef SearchPath where needed as it is defined via windows.h 2013-07-11 15:24:36 -04:00
f80859f3bd Use uint32_t type instead of uint 2013-07-11 15:16:50 -04:00
b8c369fe2d Include pbd/timersub.h for mingw build 2013-07-11 15:16:11 -04:00
965883bc22 Use Glib functions to create tmp file path 2013-07-11 15:15:40 -04:00
ef3ea6c6a6 Work around badly chosen argument name in giomm/dbusmessage.h
interface is defined in windows/mingw headers. hopefully this will
be fixed in giomm at some point and this crap can be removed
2013-07-11 15:14:51 -04:00
abd478d1c8 Include pthread.h in butler.h for mingw build
Jack2 on windows doesn't include pthread headers so it is necessary
to include them explicitly.
2013-07-11 15:11:22 -04:00
9f7e293c3b Use Glib::usleep for portability 2013-07-11 15:10:10 -04:00
01a4c3186a Use PBD::pthread_name in debug output for portability 2013-07-11 15:09:29 -04:00
2b93c878d0 Disable some non-portable code that is only used for debugging 2013-07-11 15:08:47 -04:00
fa2dcea820 Use jack_native_thread_t for portability
Requires future attention in AudioEngine due to timbyr's use JACK2 extension to JACK API
2013-07-11 15:08:10 -04:00
a69847b671 Include pbd/localtime_r.h for mingw build 2013-07-11 15:00:56 -04:00
c43ff1113d Add ::localtime_r implementation for mingw 2013-07-11 15:00:22 -04:00
5d125e1eae Use PBD::pthread_name in debug output 2013-07-11 14:58:00 -04:00
09e471545b remove direct of realpath(2), replace with canonical_path() which is a no-op on windows 2013-07-11 14:57:16 -04:00
2ddab2d2f6 Use PBD::GlibSemaphore in Butler to signal requests on windows 2013-07-11 14:41:08 -04:00
75f0dfb4a8 fix compiler warning 2013-07-11 20:39:24 +02:00
29f178aa4b Add PBD::GlibSemaphore class that uses PBD::atomic_counter etc.
PBD::Semaphore can really be used instead of this class now,
but it didn't exist when I needed this class and it is header only, which
causes some problems because windows.h is included
2013-07-11 14:38:53 -04:00
57f3ba6a1f Add wrapping class for glib atomic counter 2013-07-11 14:37:27 -04:00
dd55df80f0 Refactor the non-portable parts of Butler thread into new functions 2013-07-11 14:36:43 -04:00
0f1ed673d0 Move request pipe setup into separate function 2013-07-11 14:35:26 -04:00
6a8901eb8d Include pbd/timersub.h in session_midi.cc 2013-07-11 14:31:15 -04:00
2218a70d37 Add timersub macro for platforms where it isn't defined 2013-07-11 14:30:38 -04:00
b6afce39a4 Undef SearchPath where needed as it is defined via windows.h
This is pretty annoying, might even be worth renaming the class
2013-07-11 14:27:24 -04:00
4d71933f5b Add cast for mingw compiler 2013-07-11 14:23:20 -04:00
742753a996 Don't require liblrdf on windows
This removes dependence on liblrdf, libraptor and libxslt
2013-07-11 14:20:02 -04:00
1b21eec042 Fix for ambiguity of UUID type on windows 2013-07-11 14:13:55 -04:00
83ed3d7dcc Use glibmm for modules instead of dlfch.h 2013-07-11 13:58:48 -04:00
058ebf98b9 Disable increasing open file limit on windows 2013-07-11 13:55:03 -04:00
ef9ed302e3 Add necessary header include for int64_t type 2013-07-11 13:53:35 -04:00
0e513f0469 Include header that declares ::free for mingw build 2013-07-11 13:53:12 -04:00
157b0e385a Disable peakfile reading and writing on windows for now
There is no point trying to implement this until it can be tested
2013-07-11 13:52:29 -04:00
27a5a589ed INFINITE is defined via windows.h so undefine it 2013-07-11 13:05:24 -04:00
0c3bbd41dd Fix for mingw compiler 2013-07-11 13:04:39 -04:00
350bd56a06 Fix evoral test to compile with mingw 2013-07-11 13:03:55 -04:00
2b9f50ffc7 include winsock2.h on windows in libsmf for htons/l etc. 2013-07-11 13:03:24 -04:00
8d1f88f87b Include unistd.h for usleep on MinGW 2013-07-11 13:01:16 -04:00
ab8918fa73 Changes to get IPMIDIPort to compile(but not functional) on MinGW 2013-07-11 13:00:42 -04:00
8a9cdd04c5 Include pthread.h as it isn't included via jack headers on windows 2013-07-11 12:58:44 -04:00
4adb2f97cc Use timeout source to process ui requests on windows
Using a timeout source to process ui events/requests is suboptimal
but it works for the moment. Have to use g_source functions as glibmm
functions are not thread safe AFAIK.

Behaviour should be exactly the same on unix.
2013-07-11 12:56:35 -04:00
7626cd68ac Hide UI request mechanism from inheriting classes 2013-07-11 12:52:46 -04:00
5d20b3e24e Ifdef unix specific test for mingw build 2013-07-11 12:47:56 -04:00
cb23bdd547 Don't use parts of signal.h that aren't defined when using mingw 2013-07-11 12:46:52 -04:00
e70db68fac Add implementation for ProcessSemaphore on windows 2013-07-11 12:46:05 -04:00
8b63e005a1 Include io.h on windows for access 2013-07-11 12:44:33 -04:00
daf570ea5d Add an empty implementation of PBD::mountpoint for mingw
PBD::mountpoint is only used to find peakfiles for old sessions, so it might
not be necessary to implement this for windows.
2013-07-11 12:43:55 -04:00
d7b7953705 Use pbd/resource.h in PBD::FileManager 2013-07-11 12:42:53 -04:00
4eff7b4e82 Add pbd/resource.h for portable access to resource limits 2013-07-11 12:41:55 -04:00
38ebf63961 Fallback to gettimeofday for access time in FileManager 2013-07-11 12:39:24 -04:00
acc13d37a7 Use boost::tokenizer in PBD::parse_debug_options for portability 2013-07-11 12:36:16 -04:00
36a55b8674 Use boost::uuid instead of libuuid 2013-07-11 12:30:32 -04:00
62cfd6a752 Only call configure in surface subdirectories if the required deps are available
I think these checks should probably be in the surface build files so they
are self contained...
2013-07-11 12:23:05 -04:00
5162181767 Fix some usage of non-standard types for portability 2013-07-11 12:05:37 -04:00
b9fa882c56 Use PBD::pthread_name in debug output instead of pthread_self 2013-07-11 12:01:17 -04:00
1fad4714e3 Use PBD::pthread_name in debug output for portability 2013-07-11 11:53:24 -04:00
2048f766e9 Use pthread_equal in libmidi++ for portability 2013-07-11 11:51:59 -04:00
157e21369e Use default constructor for pthread_t in InterthreadInfo ctor 2013-07-11 11:50:25 -04:00
227cf470ba Use a std::list instead of std::set for the ThreadMap in libpbd
pthread_t can't work with std::set using the pthread lib on windows
as there is no operator< defined for the type
2013-07-11 11:43:43 -04:00
117118e5f0 Use pthread_equals in libpbd for portability 2013-07-11 11:40:59 -04:00
f47499f157 Use g_random_int instead of ::random for portability 2013-07-11 11:38:46 -04:00
27eecdc88b Use g_setenv and g_getenv for portability 2013-07-11 11:37:25 -04:00
23bec25bf5 Remove non-portable and unnused header includes 2013-07-11 11:34:37 -04:00
4be2176bd9 Revert "Remove non-portable and unnused header includes"
This reverts commit 7ef79d3f4b.
2013-07-11 11:23:41 -04:00
7ef79d3f4b Remove non-portable and unnused header includes 2013-07-11 11:19:57 -04:00
e842ae539a Fix portability of test and use temporary test 2013-07-11 11:12:39 -04:00
dc491cffdb Use common test function to create temporary session 2013-07-11 11:11:45 -04:00
d555b43f5b add new files from test changes by timbyr 2013-07-11 11:10:56 -04:00
d2ea18c4b6 theoretically: "Add new_test_output_dir to common libardour test" but actually features addition of new files, thus losing git history for these two which came from tim mayberry 2013-07-11 11:07:13 -04:00
4994073e93 Use test_search_path function in ardour test 2013-07-11 11:01:36 -04:00
060b381eb3 Add test_search_path function in libardour testsuite 2013-07-11 11:00:59 -04:00
bceab19201 Use test_search_path to find test data in xpath test 2013-07-11 10:59:30 -04:00
a2f5a8d9c0 Add test_search_path function in PBD testsuite 2013-07-11 10:58:35 -04:00
7a5118f403 Add --single-tests option to also build each libardour test as a separate program 2013-07-11 10:57:21 -04:00
83a92a0ea1 disable libardour unit tests that do not function correctly (for windows, at least) 2013-07-11 10:31:47 -04:00
ac34c5852b remove another instance of xmmintrin.h 2013-07-10 11:04:35 -04:00
9bdf0a5e79 remove unnecessary include of xmmintrin.h 2013-07-10 11:00:19 -04:00
0571e5d6ae Revert "show track-ID in mixer" and "...towards unique track numbers."
This reverts commits:
  ca54ea2b462869bfd9254a493d073ca1e9ad4b8e.
  9e87e058e26b87013e89ddf5d3b7358d50024d60.
2013-07-10 15:27:17 +02:00
833ab2ebbd remove unique track number from meterbridge 2013-07-10 15:27:16 +02:00
7a62d31056 Episode VI: Return of the ZeroDBline 2013-07-10 15:27:16 +02:00
656cc9a0ad Episode V: the gainfader line strikes back 2013-07-10 15:27:16 +02:00
251031e354 disable number display on meterbridge by default 2013-07-10 15:27:15 +02:00
ee97942165 use accurate log10 for meter (fast_log2 is unsuitable inaccurate)
fast_coefficient_to_dB() returns a lower bound value, unsuitable
to catch audio peaks. The difference to 20*log10 is as large as 0.4 dB!

The effective speedup of fast_log10 compared to log10f is marginal
(sweep of all 24bit values)

  i686 (1.6GHz Intel core):  2.36 [times faster]
  x86_64 (core2 2.4GHz):     1.63
  x86_64 (I3 2.80GHz):       2.03

the execution time of one log10f() averaged over a
sweep of all 24 bit values

  i686 (1.6GHz Intel core):  0.131 usec
  x86_64 (core2 2.4GHz):     0.033 usec
  x86_64 (I3 2.80GHz):       0.044 usec

PeakMeter::run() is called from dedicated non-rt, no harm done.
2013-07-10 15:27:15 +02:00
46c1e573c4 show track-ID in mixer 2013-07-10 15:27:15 +02:00
1699be7c98 number/name on meterbridge 2013-07-10 15:27:15 +02:00
24f2961cce ...towards unique track numbers. 2013-07-10 15:27:14 +02:00
4d49961c93 allow to include solo,mute buttons on meterbridge 2013-07-10 15:27:14 +02:00
6aecd192ce remove b0rked attempt at meter-thread regularity.
eventually fall-off should be calculated in the audio-thread, anyway
and this thread will be obsolete..
2013-07-10 15:27:14 +02:00
40bc6f5b83 Task Force Viking: operation green line 2013-07-10 15:27:14 +02:00
7f47c9c5ec fix RMS+Peak meter for MIDI-tracks 2013-07-10 15:27:14 +02:00
ffbc1c7a8b with RMS meters: use "peak indicator" as DPM 2013-07-10 15:27:13 +02:00
5dae93e5ea ignore state-changes during [meter] context-menu popup (gtkmm bug?) 2013-07-10 15:27:13 +02:00
09243a326a use digital max-peak with RMS meter 2013-07-10 15:27:13 +02:00
5de0aee287 share meter-type among meter instances. 2013-07-10 15:27:13 +02:00
58b325de31 prepare meter type unification 2013-07-10 15:27:13 +02:00
2277da6e6c test/fix - possible cause of meter-freezing.. 2013-07-10 15:27:13 +02:00
4a9e79e53f fix meterbridge metric display switch 2013-07-10 15:27:13 +02:00
3a8f5a9770 remember meter type with session 2013-07-10 15:27:13 +02:00
0710171d90 don't reset meter background/highlight on click. 2013-07-10 15:27:12 +02:00
bc1a093710 amend to 212d2ac5d (port add/remove signals)
fix deadlock when updating audio/midi connection matrix
during session-close or on exit.

(Note: this still can cause a crash if the route goes away
while the iterator in the connection-matrix still has an index
of it)
2013-07-10 15:27:12 +02:00
6e1781e5e3 experimental RMS-meter and peak-signal (vs peak-power) query 2013-07-10 15:27:12 +02:00
b2beb11c8d improve timing accuracy for meter-falloff calc. 2013-07-10 15:27:12 +02:00
03a510c3d7 prepare meter-widget for dual background color 2013-07-10 15:27:12 +02:00
c1f56d4d7c meter line-up and fall-off standard values & names 2013-07-10 15:27:11 +02:00
6d09070895 peak-indicator threshold configuration 2013-07-10 15:27:11 +02:00
62d5585e34 prepare meter configuration..
- rework metric/tick image cache invalidation
  - flush cache
  - send signal to queue redraws
  (TODO) selectively flush cache // cache per size, style
- add four common line up levels
2013-07-10 15:27:11 +02:00
da08f8b1c5 add options to show/hide master and midi tracks;; hide inactive tracks 2013-07-10 15:27:10 +02:00
9d0a3b9eaf fix [some] issues when adding/removing output ports 2013-07-10 15:27:10 +02:00
f801144472 less prominent meter shade 2013-07-10 15:27:09 +02:00
580cec03ad add shade gradient to meter 2013-07-10 15:27:08 +02:00
d4b1941796 fix meter gradient y-axis only 2013-07-10 15:27:08 +02:00
42ee64e950 midi meter updates.. 2013-07-10 15:27:08 +02:00
8a16e61b11 make all meter-colors configurable,.. 2013-07-10 15:27:07 +02:00
571b2d70e9 refactor level-meter widget: 5x2 stops meter colors 2013-07-10 15:27:07 +02:00
447e736139 remove b0rked horizontal meter code. 2013-07-10 15:27:07 +02:00
a07c50ad80 reduce peak-hold indicator to 2px height 2013-07-10 15:27:05 +02:00
a13bdf4153 meter rounded rectangle 2013-07-10 15:27:04 +02:00
3823ffc942 configurable meter background color 2013-07-10 15:27:04 +02:00
e4d754390e meter border 2013-07-10 15:27:04 +02:00
5b6fd190cb remove border around meter gradients, again. 2013-07-10 15:27:04 +02:00
fdbb0ef780 meter background gradient (hardcoded colors so far)
this is a quick test w/black borders only left+right
for Mr oofus to assess.
2013-07-10 15:27:03 +02:00
d6d27f10cb fastmeter: 1px padding left&right 2013-07-10 15:27:03 +02:00
c23a537b61 session property - include busses in meterbridge 2013-07-10 15:27:02 +02:00
ben
04eaf7b418 add lib/LV2 path akin to lib/surfaces, to allow bundling of LV2 plugins in an ardour release. My first attempt to push... 2013-07-10 07:31:25 -05:00
29108187ed fix metering when monitoring track input. (ran twice) 2013-07-07 04:16:54 +02:00
398839f6e1 reset meters when changing metering-point or ports 2013-07-05 10:44:09 +02:00
9a9f4276a0 Further Freesound import tweaks.
Make download of sound files multi-threaded. Each sound file download takes
place in its own thread, and has its own progress bar and cancel button,
which stack up from the bottom of the list of results.

Sound files download into a file with a '.part' suffix, which is then
renamed to the intended name on success.

Add a 'Similar' button, which searches Freesound for sounds similar to the
currently-selected sound in the results list.

Add a freesound-download-dir config variable to decide the location
of sound files downloaded from Freesound.

Move Windows-specific logic to replace '/'s with '\'s from
Mootcher::changeWorkingDir() to Mootcher::ensureWorkingDir(), and remove
the now unused Mootcher::changeWorkingDir().

Use Glib::build_filename to construct paths.
2013-06-22 13:35:03 +01:00
48efe6c293 Add config variable for Freesound download folder location. 2013-06-21 21:30:52 +01:00
21914c884e Make scroll-wheel modifier keys consistent in main editor window.
Add constants for the keyboard modifiers that should be used for vertical
zoom, horizontal zoom, and horizontal scrolling in the main editor window,
and use these where appropriate rather than using Keyboard::PrimaryModifier
and friends directly.
2013-06-21 20:13:44 +01:00
cc960c4f07 remove executable mode-bit from files 2013-06-16 21:54:08 +02:00
12584b7a7a don't display freewheeling & samplerate LV2 ports on GUI 2013-06-14 17:33:29 +02:00
80a13145f3 Generalize no-plugin-state from AudioUnits to all plugins
Replace AU_STATE_SUPPORT compile-time define with NO_PLUGIN_STATE and make it prevent plugin state setting, preset loading, preset saving and plugin state saving. Blocks on these actions exist partially in the backend and partially in the GUI (this latter class are not absolute, and should OSC or MIDI be able to drive Plugin::save_preset() the block could be circumvented). Set NO_PLUGIN_STATE if --freebie is used at waf-configure time
2013-06-13 22:50:54 -04:00
5d52ae1825 Update Russian translation of Ardour 3.2 2013-06-14 02:21:02 +02:00
e2df0413f4 fix up versioning stuff for libardour, which should track regular ardour release versions 2013-06-13 10:53:36 -04:00
31e8c77609 update .po files 2013-06-11 08:49:52 -04:00
298da23619 save and restore Generic MIDI threshold/smoothing value 2013-06-10 12:37:09 -04:00
4cb31ef74e Revert all close-on-exec changes from earlier today
with b26cc125 these are no longer needed.
2013-06-07 21:07:41 +02:00
fd5f1ef5f5 fix typo in SndFileDescriptor::open() -- check if file open succeeded. 2013-06-07 20:14:42 +02:00
07c6df00cc fix use of sf_open_fd() instad of sf_open() 2013-06-07 19:33:20 +02:00
676a23e031 close audio-file if it cannot be opened 2013-06-07 18:56:48 +02:00
0761902b7e fix issue (creating new sound-files) in 92161b57 2013-06-07 18:09:15 +02:00