Commit Graph

395 Commits

Author SHA1 Message Date
John Emmas 6f019faaa0 Accommodate the change from libtimecode to libtemporal 2018-02-14 10:02:11 +00:00
Paul Davis 7db12f6b12 convert codebase to use Temporal for various time types 2017-09-24 12:03:54 -04:00
Paul Davis 30b087ab3d globally change all use of "frame" to refer to audio into "sample".
Generated by tools/f2s. Some hand-editing will be required in a few places to fix up comments related to timecode
and video in order to keep the legible
2017-09-18 12:39:17 -04:00
Robin Gareus d11d8b8a96 Catch new exception in other places. 2017-08-30 17:53:31 +02:00
Tim Mayberry dc893a3f21 Use XMLNode::set_property API in Midi::Port class 2017-04-19 09:36:48 +10:00
Tim Mayberry 2d52b425b8 Use XMLNode::set_property API in Midnam related classes 2017-04-19 09:36:48 +10:00
David Robillard 08fffeffec Remove Evoral::MIDIEvent
It is slightly questionable whether type specific methods like
velocity() belong on Event at all, these may be better off as free
functions.  However the code currently uses them as methods in many
places, and it seems like a step in the right direction, since, for
example, we might some day have events that have a velocity but aren't
stored as MIDI messages (e.g. if Ardour uses an internal musical model
that is more expressive).

In any case, the former inheritance and plethora of sloppy casts is
definitely not the right thing.
2016-12-03 15:18:21 -05:00
David Robillard 875b1367b2 Factor out and extend MIDIXML implementation 2016-12-03 15:18:20 -05:00
David Carlier 28435d1a30 Making buildable under OpenBSD. 2016-11-29 13:18:46 +00:00
Robin Gareus 0332c127cd Allow to dynamically un/load Midnam Patches 2016-10-29 19:57:43 +02:00
John Emmas 0ff233d234 Update our MSVC project files to generate the most recent Ardour session file format (ver 5) rather than the older v3 format 2016-08-30 07:15:00 +01:00
Robin Gareus 86763cba90 Enable build for FreeBSD (part 1/2)
Adopted from Michael Beer -- GH pull-request #232 with minor changes:

*   rebased on master,
*   removed trailing whitespace,
*   don't explicitly change saved configuration defaults (wscript)
*   moved sys/wait (WNOHANG) to header include
*   separate changes in GUI and lib
2016-06-26 16:43:07 +02:00
John Emmas b0200b23f2 Accommodate the fact that 'msvc_resources.rc.in' got moved to a new path 2016-05-21 10:33:18 +01:00
Adrian Knoth 6fa88273aa Spelling correction patch from Debian
Patch taken (and forward-ported to HEAD) from
<https://anonscm.debian.org/cgit/pkg-multimedia/ardour.git/plain/debian/patches/0100-fix-typos.patch>
2016-02-22 15:13:01 -05:00
Paul Davis 5153631d70 change API of MIDI::Port::drain() to include a maximum blocking time 2016-02-01 13:26:30 -05:00
Paul Davis 988a4521e4 add explanatory comment regarding IP_MULTICAST_LOOP, remove cout debug msg 2016-01-18 18:36:11 -05:00
Paul Davis a4271b8560 try using reversed IP_MULTICAST_LOOP semantics for windows 2016-01-18 18:15:48 -05:00
Paul Davis cd27f742d4 momo ip midi debugging 2016-01-18 17:57:06 -05:00
Paul Davis b520db4687 mo' ip midi debugging 2016-01-18 17:18:44 -05:00
Paul Davis 0a6eed2b33 remove ipmidi debugging 2016-01-18 16:57:50 -05:00
Paul Davis 62ff9d9276 windows, i love you, more 2016-01-18 16:43:27 -05:00
Paul Davis efca4413b9 windows, i love you 2016-01-18 16:41:59 -05:00
Paul Davis 3fc50258b8 debug IP multicast loopback 2016-01-18 16:38:25 -05:00
Paul Davis 650ee5a317 use cout instead of cerr, since this debugging is for windows 2016-01-18 15:53:28 -05:00
Paul Davis 97f180c432 IP MIDI debugging 2016-01-18 14:45:36 -05:00
Paul Davis eb26cb346a even more attempted changes for ipMIDI on windows 2015-12-12 01:17:49 -05:00
Paul Davis c92af555b4 further attempted changes for ipMIDI on windows 2015-12-12 01:16:44 -05:00
Paul Davis e9e477ffe5 some attempted changes for ipMIDI on windows 2015-12-12 01:13:49 -05:00
Paul Davis 6f71125476 try just removing all PLATFORM_WINDOWS conditionals in ipmidi code to see if it will compile 2015-12-12 00:58:07 -05:00
Kamil Rytarowski 2b869e1563 netbsd: Fix unportable shell construct
Caught with pkgsrc on NetBSD
2015-12-03 12:19:34 +01:00
Robin Gareus 73d1de3b75 NOOP, remove trailing whitespace, replace tabs in python scripts 2015-11-29 17:54:31 +01:00
Paul Davis a15cf9f0b3 get faderport i/o working, basics of identifying control activity 2015-11-24 18:00:11 -05:00
Paul Davis 3095cbc4f9 more corrections for libmidi++ (N)RPN API 2015-11-23 12:27:51 -05:00
Paul Davis 5f7784e4f2 change API for libmidi++ RPN-related signals to be more useful 2015-11-23 11:49:08 -05:00
Paul Davis 14fe7a0ae8 add (N)RPN handling to libmidi++ 2015-11-23 10:44:40 -05:00
Tim Mayberry efc26a0490 Store the file path when constructing MidiNameDocument
This is so we can compare and see if we have already parsed the file
2015-10-22 11:51:03 -04:00
Robin Gareus 22b07e0233 NOOP, remove trailing tabs/whitespace. 2015-10-05 16:17:49 +02:00
Paul Davis 4178db5f63 globally remove all trailing whitespace from .cpp and .hpp files missed by previous commit 2015-10-04 15:11:15 -04:00
Paul Davis 4dc63966f0 globally remove all trailing whitespace from ardour code base.
Paul Davis was responsible for introducing almost all of this.
2015-10-04 14:51:05 -04:00
Robin Gareus 8e8f8d92c2 allow to run unit-test under wine from srcdir. 2015-09-13 15:30:00 +02:00
Robin Gareus eb998b3264 plug some memory leaks in libs 2015-09-12 20:05:25 +02:00
Paul Davis 7fae6bcd87 copy all XCode project files from Tracks.
Rationale: the Waves team maintains the XCode project files, the Ardour crew doesn't. Thus, the Waves'
version is more canonical
2015-06-29 14:18:10 -04:00
John Emmas 801af5df9e Add the new (UINTSDEFINED) preprocessor directive to all out MSVC projects (just to be on the safe side) 2015-06-09 13:18:42 +01:00
Robin Gareus 0367aa5825 remove cruft (old unused pre-git version files) 2015-01-09 06:11:57 +01:00
David Robillard 2a251b4570 MusicalTime => Beats. 2015-01-07 00:12:07 -05:00
David Robillard 2e62ca9631 Fix off-by-one MIDI note names.
Much like everything else in midnam, it's not specified whether the numbers are
0 or 1 relative, but everything out there seems to be 0 relative and this
matches the canvas, so go with that.
2014-12-29 20:20:16 -05:00
David Robillard d2cafbe95a Remove some aborts that don't really need to be.
Enforce PatchPrimaryKey sanity at the type level rather than attempting to
check for it everywhere.

Remove dead file.
2014-12-17 19:43:09 -05:00
Robin Gareus 6f7ee67c71 midnam test: don't clutter up output. 2014-12-06 23:51:45 +01:00
Tim Mayberry 81d47f5b8c Call PBD::init() from libmidi++ test runner
This is mostly just to be able to set PBD_DEBUG for testing if
necessary
2014-12-03 17:31:05 +07:00
Tim Mayberry 4fe6bf3530 export MIDIPP_TEST_PATH in midi++ test script so test files can be located
Modify formatting of script to be consistant with other test scripts
2014-12-03 17:31:04 +07:00
Tim Mayberry 23c0452e05 Add test_search_path to find test files in MidnamTest 2014-12-03 17:31:04 +07:00
David Robillard 0b48eb68f8 Remove bogus test and noisy output. 2014-11-30 23:56:19 -05:00
Paul Davis c927eeb9ee ensure that Ardour recognizes its own MMC device ID as "all-call" when set to 0x7f (127) 2014-11-26 18:22:22 +02:00
David Robillard c1cfa12d6e Wrap MusicalTime in a class.
This lets us get a more explicit handle on time conversions, and is the main
step towards using actual beat:tick time and getting away from floating point
precision problems.
2014-11-22 04:05:42 -05:00
Robin Gareus 6b3a8915f3 add abort() to non-reached code
This cleans up a lot of false-positives in static analysis
and also helps compilers to optimize code paths in general.
(tagging the fatal stingstream operator as ‘noreturn’ is
far less trivial)
2014-11-14 11:30:08 +01:00
John Emmas 973d40e3ac Add support for USE_CAIRO_IMAGE_SURFACE when building with MSVC
(new preprocessor directive - greatly improves CPU loading)
2014-10-29 17:36:30 +00:00
Paul Davis e32a8e8260 require a timestamp on MIDI::MachineControl::send() 2014-10-22 17:07:11 -04:00
Robin Gareus a361781e08 plug a major mem hog.
(default empty session is now ~140MB RSS, was 280MB)
libXML memory was only free() at exit
2014-09-09 23:53:27 +02:00
John Emmas 65715dd298 Make sure all our VC projects agree that the product is called 'Mixbus3' (as opposed to just 'Mixbus')
It'd be nice if we could use 'ARDOUR::config_dir_name' for this purpose (or perhaps 'PROGRAM_VERSION'). However, neither is implemented widely enough at present to make this practical. Keep an eye on them though, as possible future strategies.
2014-08-28 07:57:20 +01:00
John Emmas 45afed5e9a Modify our VC project files to work with msvc32-fixup.pl 2014-08-04 09:02:17 +01:00
David Robillard 928881b24a Update vcproj files for changed LILV config define. 2014-07-15 15:50:12 -04:00
David Robillard fe9f2b15b1 Support midnam files with a channel (not patch) NoteNameList. 2014-07-15 15:18:18 -04:00
Tim Mayberry 8d0cba3384 Use PBD::find_files_matching_pattern instead of other variations 2014-06-25 12:40:10 -04:00
Robin Gareus 438179d278 wrap MIDI timecode at 24h 2014-06-10 04:22:34 +02:00
Robin Gareus c0376fe7b3 really fix sending MIDI timecode. 2014-06-10 04:12:08 +02:00
Robin Gareus 7df663acf2 fix crash when trying to send MMC of timecode > 255 hours 2014-06-10 03:18:05 +02:00
Paul Davis 58522e5b5e fix for storing 14 bit MIDI controller values 2014-04-30 10:10:06 -04:00
Paul Davis 1b989a93c2 remove redundant os.path.join() calls when specifying install path as bld.env['LIBDIR'] 2014-04-28 21:18:02 -04:00
Paul Davis 058986f77b finish unfinished work at basing all install paths on the program name 2014-04-28 21:11:08 -04:00
Paul Davis 2cf411e4be merge (squash) with scenechange topic branch to provide MIDI-driven scene change markers 2014-04-28 19:58:24 -04:00
Paul Davis 0802cbf30c remove inclusion of jack.h so that we can build on a platform without JACK 2014-04-10 08:52:21 -04:00
John Emmas 077a194430 Add the main VC project files for building Ardour3 with Microsoft Visual Studio
Note that there's no 'VS Solution' file at present and some targets haven't been built yet (e.g. 'fst')
2014-04-08 09:49:35 +01:00
Paul Davis e6c3cece64 remove recently added conflation of mingw64 and msvc with respect to symbol export 2014-03-02 14:59:08 -05:00
Paul Davis 19395ac258 when mingw is mingw64, it appears that we need to use __declspec() and not __attribute__((visibility)) for export control 2014-03-01 15:16:39 -05:00
Paul Davis 50edf9b626 correct delete/free mess 2014-02-12 15:14:40 -05:00
Paul Davis 5062a00c7d move -fvisibility=hidden to the top of the source tree, and remove its internal use; use libtimecode as a shared lib again 2014-01-12 15:40:47 -05:00
Paul Davis 59631acc5f fix merge with master 2014-01-11 15:19:18 -05:00
David Robillard 72d8ca89e2 Support midnam controller value labels. 2014-01-10 20:51:54 -05:00
Paul Davis 3020b224fa Merge windows+cc branch into cairocanvas branch. Not finished, need to now merge windows branch to get changes from there 2014-01-10 16:07:57 -05:00
Paul Davis e7c4774728 Merge branch 'master' into cairocanvas 2014-01-02 09:16:28 -05:00
Robin Gareus e281f5653c fix assert for non-existing MIDI patch-names
typename boost::detail::sp_member_access<T>::type boost::shared_ptr<T>::operator->() const [with T = MIDI::Name::ChannelNameSet; typename boost::detail::sp_member_access<T>::type = MIDI::Name::ChannelNameSet*]: Assertion `px != 0' failed.
2013-12-30 16:24:27 +01:00
Tim Mayberry 3a885d6177 Only use __declspec(dllimport/dllexport) for MSVC compiler
Use the gcc visibility attributes when building with the MinGW compiler(gcc).
GCC also supports the __declspec syntax but it will not compile at the moment
until the issues(which may not even be exactly the same issues as with MSVC)
are resolved.
2013-12-05 21:11:18 +10:00
Paul Davis 8648a8a13b fix up wscript/build issues in exportvis after merge with master 2013-12-03 11:51:25 -05:00
Paul Davis 4d0caa6ddd add yet more missing parts of previous commit re: libmidi++ and JACK (files not saved in emacs, sigh) 2013-11-27 14:08:22 -05:00
Paul Davis 4a71e6f28f add missing parts of previous commit re: libmidi++ and JACK (files not saved in emacs, sigh) 2013-11-27 13:53:58 -05:00
Paul Davis ac4d691fe9 remove unintended linkage between libmidipp and jack 2013-11-27 12:44:23 -05:00
Tim Mayberry b97ab7d7bc Statically link libtimecode into libmidi++ instead of libardour
This is necessary to get the libmidi++ test to work as libmidi++ has
unresolved symbols in libtimecode. This was not a problem when libtimecode
was statically linked into libardour if the executable depended on both
libtimecode and libardour as the symbols would get resolved.

This is not true for the midi++ test case as it doesn't depend on libardour

Also as libmidi++ only references symbols from one object file in the
libtimecode static archive only that object file gets included/exported
from libmidi++.

This is fixed by adding a dummy reference to a symbol in the other object
file in the libtimecode static archive.
2013-10-20 09:27:35 +10:00
Paul Davis f85c67501c reverse the visibility.h files assumptions that we don't build shared libs by default
This avoids having to define define LIBFOO_DLL=1 all over the place. If we ever go with static libs we will
need to define LIBFOO_STATIC=1 but hopefully in some central location like the top level wscript.

Oh, and I also dropped support for gcc older than version 4.x because ardour will already not build
on such an old version.
2013-10-18 11:50:44 -04:00
Paul Davis 683496c501 use libltc and libtimecode as static libs, and upgrade to waf 1.7
This is slightly awkward. It is important that we only link once to the static lib. Doing this at executable link time did not
work, possibly because waf insisted on putting the two static libraries at the front of the link list. So instead libardour
is now the point where linkage to these libraries occurs (and nowhere else). This should never be changed unless the change
just moves the linkage point to another location.

Also fix a bug with the libardour version tha was picked up by waf 1.7
2013-10-18 11:11:59 -04:00
John Emmas b855e5f322 Merge remote-tracking branch 'remotes/origin/exportvis' into windows+cc
Conflicts (hopefully resolved):
	gtk2_ardour/wscript
	libs/ardour/ardour/audioregion.h
	libs/ardour/ardour/debug.h
	libs/ardour/ardour/directory_names.h
	libs/ardour/ardour/filesystem_paths.h
	libs/ardour/ardour/session_event.h
	libs/gtkmm2ext/gtkmm2ext/utils.h
	libs/panners/1in2out/wscript
	libs/panners/2in2out/wscript
	libs/panners/vbap/wscript
	libs/pbd/pbd/debug.h
	libs/pbd/pbd/file_utils.h
	libs/pbd/pbd/pathexpand.h
	libs/pbd/pbd/ringbuffer.h
	libs/pbd/pbd/ringbufferNPT.h
	libs/pbd/pbd/search_path.h
	libs/pbd/pbd/stacktrace.h
	libs/pbd/pbd/uuid.h
	libs/pbd/pbd/uuid_boost.h
	libs/surfaces/control_protocol/control_protocol/basic_ui.h
	libs/surfaces/control_protocol/control_protocol/control_protocol.h
2013-10-18 10:03:22 +01:00
Paul Davis 300536e5cd add -fvisibility=hidden to libmidi++ and make things work 2013-10-17 15:07:18 -04:00
Paul Davis 61c1956ef9 add -fvisibility=hidden to evoral, and make things work 2013-10-17 15:02:20 -04:00
Paul Davis f3d2ca0d9a get everything compiling with libardour built using -fvisibility=hidden 2013-10-17 12:41:28 -04:00
Paul Davis 15471ca7dd add export control to libgtkmm2ext 2013-10-17 11:26:01 -04:00
Paul Davis 94ef2692b8 add export control to libevoral 2013-10-17 10:52:02 -04:00
Paul Davis 9b7c33096a export-ify libmidipp 2013-10-17 10:27:04 -04:00
Paul Davis a7f156e005 new file for libmidi++ export control 2013-10-17 09:56:43 -04:00
Paul Davis bb826f4bee incomplete merge of master into windows (requires upcoming changes to master to be complete) 2013-09-12 11:28:50 -04:00
Paul Davis a5a75d5e0d fixes to get MTC (and probably MIDI clock) slaving working again
incoming MIDI data has to be parsed EVERY process cycle, not just when Slave::speed_and_position() is called.
The private MIDI::Parser owned by the MTC and MClck slaves was irrelevant, since the port has its own.
See comments in midi_port.h on the strangled inheritance heirarchy.
2013-08-13 12:53:28 -04:00
Paul Davis a5a3f713d5 assorted extra debug output for MTC 2013-08-12 05:40:11 -04:00