13
0
Commit Graph

74 Commits

Author SHA1 Message Date
e6eb059576 the big Route structure refactor. !!!! THIS WILL ***NOT LOAD*** PRIOR 3.0 or 2.X SESSIONS !!!! BREAKAGE IS EXPECTED !!!! IF YOU HAVE AND NEED A WORKING 3.0 DO **NOT** UPDATE. !!!! otherwise, update and enjoy the steadily emerging joys of this major reworking of ardour internals
git-svn-id: svn://localhost/ardour2/branches/3.0@5137 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-06-09 20:21:19 +00:00
Carl Hetherington
68f8631611 Fix uninitialised variable.
git-svn-id: svn://localhost/ardour2/branches/3.0@5114 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-05-31 09:57:22 +00:00
7deb14773b 75% (?) of the way towards making mixer strips control bus sends. lots more to do
git-svn-id: svn://localhost/ardour2/branches/3.0@5090 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-05-17 02:08:13 +00:00
807bc4c3d6 Reconfigure GUI meters when route I/O configuration changes.
git-svn-id: svn://localhost/ardour2/branches/3.0@5037 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-05-04 17:05:55 +00:00
e0aaed6d65 *** NEW CODING POLICY ***
All #include statements that include a header that is a part of a library
bundled with ardour MUST use quotes, not angle brackets.

Do this:

#include "ardour/types.h"

NOT this:

#include <ardour/types.h>

Rationale:

This is best practice in general, to ensure we include the local version
and not the system version.  That quotes mean "local" (in some sense)
and angle brackets mean "system" (in some sense) is a ubiquitous
convention and IIRC right in the C spec somewhere.

More pragmatically, this is required by (my) waf (stuff) for dependencies
to work correctly.  That is:

!!! FAILURE TO DO THIS CAN RESULT IN BROKEN BUILDS !!!

Failure to comply is punishable by death by torture. :)

P.S. It's not that dramatic in all cases, but this (in combination with some
GCC flags specific to the include type) is the best way I have found to be
absolutely 100% positive the local ones are being used (and we definitely
want to be absolutely 100% positive on that one).


git-svn-id: svn://localhost/ardour2/branches/3.0@4655 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-25 18:26:51 +00:00
cbb59ddbce Fix 'sticky' sliders when MIDI control feedback is enabled.
git-svn-id: svn://localhost/ardour2/branches/3.0@4628 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-18 23:54:41 +00:00
67ce82c9b4 Shutup.
git-svn-id: svn://localhost/ardour2/branches/3.0@4574 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-15 02:14:23 +00:00
aaa91db6d9 Trim include dependency graph, especially for io.h and session.h.
Clean up some stuff and other such gruntwork in the process.


git-svn-id: svn://localhost/ardour2/branches/3.0@4468 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-01-30 20:18:31 +00:00
70b939da4f first pass at internal sends. this is a very tentative work in progress, and it is possible that major changes may follow in the near future. it is certainly not complete, but the fundamental changes to Port/Buffer operation merit a commit at this point
git-svn-id: svn://localhost/ardour2/branches/3.0@4464 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-01-30 07:40:13 +00:00
bc89fe0147 most of the 2.X->3.0 commit (up to rev 4299) except for gtk2_ardour/editor_canvas.cc; builds and runs and does a few specific things but expect it to be buggy for a while yet
git-svn-id: svn://localhost/ardour2/branches/3.0@4313 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-12-12 14:43:24 +00:00
3be16e8afb partial patch/partial by-hand merge of 2.X commits 3169&3170 to 3.X codebase
git-svn-id: svn://localhost/ardour2/branches/3.0@4300 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-12-08 16:07:28 +00:00
b5ec66ae6c Can't call the wrong function when there's only one of them: remove ARDOUR::Parameter and just use Evoral::Parameter (move Ardour specific functionality to EventTypeMap where it belongs).
Less than pretty in places but easily seddable just in case...


git-svn-id: svn://localhost/ardour2/branches/3.0@3838 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-09-29 22:47:40 +00:00
d357eca668 Factor out sequencing related things into an independant new library: "evoral".
Anything related to the storage of events/values over a range of time lives in evoral.
This includes MidiModel (Evoral::Sequence) and automation data (AutomationList (Evoral::ControlList),
	Automatable (Evoral::ControlSet), etc).
libs/evoral synced with http://svn.drobilla.net/lad/trunk/evoral r1511.


git-svn-id: svn://localhost/ardour2/branches/3.0@3754 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-09-19 00:47:49 +00:00
68e943265e merge from 2.0-ongoing @ 3581
git-svn-id: svn://localhost/ardour2/branches/3.0@3711 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-09-10 15:03:30 +00:00
cb41314642 merge 3.0 from 2.0-ongoing@3243
git-svn-id: svn://localhost/ardour2/branches/3.0@3248 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-04-11 14:06:50 +00:00
997e4b1f9c merge with 2.0-ongoing @ rev 3147
git-svn-id: svn://localhost/ardour2/branches/3.0@3152 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-03-17 20:54:03 +00:00
8a2e30816e Merge with 2.0-ongoing R2883.
git-svn-id: svn://localhost/ardour2/trunk@2885 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-01-10 22:22:29 +00:00
bb457bb960 Merge libs/ardour and gtk2_ardour with 2.0-ongoing R2837.
git-svn-id: svn://localhost/ardour2/trunk@2883 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-01-10 21:20:59 +00:00
Doug McLain
b42213bb04 Port level meters to trunk
git-svn-id: svn://localhost/ardour2/trunk@2802 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-12-20 23:25:19 +00:00
Doug McLain
7423ad46a7 dont fill the initial gm rec, since it gets overdrawn by the metrics pixmap anyway
git-svn-id: svn://localhost/ardour2/trunk@2421 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-09-05 20:09:35 +00:00
Doug McLain
8144a70087 finish show() stuff for mixer strip and friends
git-svn-id: svn://localhost/ardour2/trunk@2126 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-07-07 09:36:56 +00:00
Doug McLain
af8acbcc88 more show() stuff, and replaced strip->show_all(); untill its actually finished
git-svn-id: svn://localhost/ardour2/trunk@2124 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-07-07 05:04:34 +00:00
133a66920b s/ParamID/Parameter/
git-svn-id: svn://localhost/ardour2/trunk@2098 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-07-03 18:39:09 +00:00
24ccaac67e Further automation refactoring - bring in the concept of Controllable, work towards
making automation + GUI + play/write/touch generic and easily reusable.
Added bar controller to automation track controls (mostly relevant for MIDI CC, but added for gain and pan too Just Because).
Fixed glaring "redirect" list errors.
Fix plugin controls/automation loading.


git-svn-id: svn://localhost/ardour2/trunk@2080 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-06-29 04:02:58 +00:00
d7bd270aa1 Big ol' automation refactor.
Things with automation parameters now inherit from Automatable, which handles serialization, fetching/adding/removing parameters, etc.
Use AutomationList everywhere instead of Curve, make Curve a member of AutomationList instead (towards other types of "Curve" needed for CC, among other things).
Work towards MIDI CC sending "automation" tracks.


git-svn-id: svn://localhost/ardour2/trunk@2069 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-06-27 15:51:50 +00:00
7092ef3d08 Move ARDOUR_UI::ThemeChanged signal into Gtkmm2ext::UI
This means ThemeManager no longer depends on ARDOUR_UI


git-svn-id: svn://localhost/ardour2/trunk@2057 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-06-27 12:12:34 +00:00
8ae5804279 Made plugin input/output counts multi-typed (towards MIDI plugins, instruments, etc).
Cleaning up/genericification of Insert interface.
Fixed meter count for pre-fader metering (was # inputs, not # channels at end of pre-fader redirect list).
Work on redirect list stream handling, better error reporting (towards automatically adding 'adaptors' in the future?).


git-svn-id: svn://localhost/ardour2/trunk@2025 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-06-20 03:05:16 +00:00
10a282777a MIDI metering.
git-svn-id: svn://localhost/ardour2/trunk@1950 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-06-04 01:38:28 +00:00
70fd14afe8 Show selected MIDI track in editor mixer.
Minor code cleanups.


git-svn-id: svn://localhost/ardour2/trunk@1949 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-06-04 00:05:33 +00:00
Doug McLain
a923e78e96 add missing png files for 2 new crossfade presets per r1889
git-svn-id: svn://localhost/ardour2/trunk@1922 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-05-26 16:17:53 +00:00
Doug McLain
800178bb66 Better method for redrawing gain meter pixmaps upon theme change
git-svn-id: svn://localhost/ardour2/trunk@1921 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-05-26 13:47:28 +00:00
Doug McLain
e1f57ba8f0 New theme manager, with option to select between dark and light theme. Cleanups to ardours handling of the ui rc file during startup, and changed the monitoring options to be global instead of session specific. More details about the theme stuff comign to ardour-dev
git-svn-id: svn://localhost/ardour2/trunk@1917 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-05-25 20:29:12 +00:00
9a4a9cbb63 Added nicer looking wrapper methods for ChanCount::get(DataType), sedified code to use it.
git-svn-id: svn://localhost/ardour2/trunk@1816 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-05-10 03:50:17 +00:00
a612857eb6 make session restore work by using explicit data types when creating new playlists ... poses question - how did this ever compile before?
git-svn-id: svn://localhost/ardour2/branches/midi@1774 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-05-02 13:09:03 +00:00
0c7b7216ef initial fixes to get build to work without new JACK MIDI, and to get it running with an older session, at least somewhat
git-svn-id: svn://localhost/ardour2/branches/midi@1773 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-05-01 23:26:14 +00:00
959a7909c1 Merged with trunk R1705.
Synced .po files with trunk.
Fixed more editor operations to be type agnostic (ie not audio only).


git-svn-id: svn://localhost/ardour2/branches/midi@1709 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-04-12 23:20:37 +00:00
99904735e0 Merged with trunk R1612.
git-svn-id: svn://localhost/ardour2/branches/midi@1614 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-03-18 06:07:08 +00:00
f9f5ec85fb Merged with trunk R1393.
git-svn-id: svn://localhost/ardour2/branches/midi@1395 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-01-28 17:44:13 +00:00
532f6aad4a Merged with trunk R1283.
NOTE: Compiles, but broken (crash on adding MIDI track).


git-svn-id: svn://localhost/ardour2/branches/midi@1292 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-01-09 23:24:54 +00:00
fedf3d34f3 Merged with trunk R992.
Completely untested other than it compiles, runs, and records somewhat (need to merge again).


git-svn-id: svn://localhost/ardour2/branches/midi@999 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-10-21 19:01:50 +00:00
5169a66f35 Merged with trunk R874.
Commented out some overly verbose debug prints


git-svn-id: svn://localhost/ardour2/branches/midi@875 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-08-31 02:28:42 +00:00
30ab1fd615 Towards MIDI:
- Converted vector<Sample*> to BufferList and numerous counts from int to ChanCount (and related changes)
- Added fancy type-generic iterators to BufferList, PortIterator (see IO::collect_input for a good example of the idea - the same code will work to read all input (of various types in a single IO, eg instruments) without modification no matter how many types we add)
- Fixed comparison operator bugs with ChanCount (screwed up metering among other things)
- Moved peak metering into it's own object, and moved most of the pan related code out of IO to panner (still a touch more to be done here for MIDI playback)

Not directly MIDI related fixes for problems in trunk:

- Fixed varispeed gain/pan automation to work properly (was reading the wrong range of automation data, probably causing nasty clicks?)
- Fixed crash on varispeed looping (possibly only a 64-bit problem).  It still doesn't work, but at least it doesn't die

Quite a few things broken, and the new classes are pretty filthy still, but I think the direction is a lot better than all my previous plans...


git-svn-id: svn://localhost/ardour2/branches/midi@795 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-08-12 08:20:24 +00:00
cbdf686e39 - Replaced integer port counts (and input/output maximum/minimum) with ChanCount, which can count multiple types and does the reasonable thing for all comparison operators
- Removed the fader/meters from MIDI mixer strips, at least until they do something
- Made the Add Route dialog refuse to create MIDI busses, Spifftacular warning dialog and all

Changes a bit more widespread than I was hoping, but worked out really well - lots of code will continue to work fine even when multi-typed (eg instrument) IOs come around, just ignoring the types it doesn't care about.  Most all changes related to counts are little search/replace deals, logic doesn't need to change.  Hopefully SVN can handle (automatic) merging with the other SoC projects if the buffer change goes as well.

Next step: do for buffers what the last two commits did for ports.


git-svn-id: svn://localhost/ardour2/branches/midi@787 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-08-11 07:15:30 +00:00
8277d134b9 Merged with trunk R708
git-svn-id: svn://localhost/ardour2/branches/midi@712 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-07-28 01:08:57 +00:00
50a3102b9b Merge big changes (mostly Controllable) from trunk
git-svn-id: svn://localhost/ardour2/branches/midi@682 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-07-14 03:43:32 +00:00
fe13d08874 Large nasty commit in the form of a 5000 line patch chock-full of completely
unecessary changes.  (Sorry, doing a "sprint" based thing, this is the end of the first one)

Achieved MIDI track and bus creation, associated Jack port and diskstream creation, and minimal GUI stuff for creating them.  Should be set to start work on actually recording and playing midi to/from disk now.

Relevant (significant) changes:

- Creation of a Buffer class.  Base class is type agnostic so things can point to a buffer but not care what kind it is (otherwise it'd be a template).  Derived into AudioBuffer and MidiBuffer, with a type tag because checking type is necessary in parts of the code where dynamic_cast wouldn't be wise.  Originally I considered this a hack, but passing around a type proved to be a very good solution to all the other problems (below).  There is a 1:1 mapping between jack port data types and ardour Buffer types (with a conversion function), but that's easily removed if it ever becomes necessary.  Having the type scoped in the Buffer class is maybe not the best spot for it, but whatever (this is proof of concept kinda stuff right now...)

- IO now has a "default" port type (passed to the constructor and stored as a member), used by ensure_io (and similar) to create n ports.  IO::register_***_port has a type argument that defaults to the default type if not passed.  Rationale:  previous IO API is identical, no changes needed to existing code, but path is paved for multiple port types in one IO, which we will need for eg synth plugin inserts, among other things.  This is not quite ideal (best would be to only have the two port register functions and have them take a type), but the alternative is a lot of work (namely destroying the 'ensure' functions and everything that uses them) for very little gain.  (I am convinced after quite a few tries at the whiteboard that subclassing IO in any way is not a feasible option, look at it's inheritance diagram in Doxygen and you can see why)

- AudioEngine::register_audio_input_port is now register_input_port and takes a type argument.  Ditto for output.

- (Most significant change) AudioDiskstream abstracted into Distream, and sibling MidiDiskstream created.  Very much still a work in progress, but Diskstream is there to switch references over to (most already are), which is the important part.  It is still unclear what the MIDI diskstream's relation to channels is, but I'm pretty sure they will be single channel only (so SMF Type 0) since noone can come up with a reason otherwise.

- MidiTrack creation.  Same thing as AudioTrack but with a different default type basically.  No big deal here.

- Random cleanups and variable renamings etc. because I have OCD and can't help myself. :)

Known broken:  Loading of sessions containing MIDI tracks.




git-svn-id: svn://localhost/ardour2/branches/midi@641 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-06-26 16:01:34 +00:00
e13e84677a Merged with trunk revision 610
git-svn-id: svn://localhost/ardour2/branches/midi@611 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-06-15 22:31:13 +00:00
Sampo Savolainen
ce6c41c060 Fixed some valgrind errors from using uninitialized variables in
conditionals.


git-svn-id: svn://localhost/trunk/ardour2@532 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-05-24 22:43:15 +00:00
Nick Mainsbridge
a222c19737 Mixer pane can be collapsed again, some cleanup, give up and go back to 'Off' for no automation playback state.
git-svn-id: svn://localhost/trunk/ardour2@521 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-05-22 11:12:26 +00:00
Nick Mainsbridge
60f5fc321b This should fix the options editor crasher i just made.. thanks Nostar
git-svn-id: svn://localhost/trunk/ardour2@520 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-05-21 13:21:25 +00:00