| @@ -17,6 +17,9 @@ | |||||
| /* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ | /* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ | ||||
| /*******************************************************************************/ | /*******************************************************************************/ | ||||
| /* An Audio_Sequence is a sequence of Audio_Regions. Takes and 'track | |||||
| * contents' consist of these objects */ | |||||
| #include <Fl/fl_ask.H> | #include <Fl/fl_ask.H> | ||||
| #include "Audio_Sequence.H" | #include "Audio_Sequence.H" | ||||
| @@ -17,7 +17,7 @@ | |||||
| /* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ | /* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ | ||||
| /*******************************************************************************/ | /*******************************************************************************/ | ||||
| /* actual implementation of our side of the LASH protocol */ | |||||
| /* Actual implementation of our side of the LASH protocol */ | |||||
| /* NOTES: Since LASH doesn't provide us with the information we | /* NOTES: Since LASH doesn't provide us with the information we | ||||
| * need--when we need it--we just punt and only use LASH to save and | * need--when we need it--we just punt and only use LASH to save and | ||||
| @@ -17,11 +17,14 @@ | |||||
| /* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ | /* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ | ||||
| /*******************************************************************************/ | /*******************************************************************************/ | ||||
| #include "LASH_Client.H" | |||||
| /* Handler based wrapper for LASH */ | |||||
| #include "LASH_Client.H" | |||||
| #include "util/debug.h" | #include "util/debug.h" | ||||
| LASH_Client::LASH_Client ( ) | LASH_Client::LASH_Client ( ) | ||||
| { | { | ||||
| _void = 0; | _void = 0; | ||||
| @@ -32,6 +35,8 @@ LASH_Client::~LASH_Client ( ) | |||||
| /* TODO: anything? */ | /* TODO: anything? */ | ||||
| } | } | ||||
| #ifdef HAVE_LASH | #ifdef HAVE_LASH | ||||
| #include <lash/lash.h> | #include <lash/lash.h> | ||||
| @@ -17,6 +17,13 @@ | |||||
| /* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ | /* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ | ||||
| /*******************************************************************************/ | /*******************************************************************************/ | ||||
| /* This class handles all journaling. All journaled objects must | |||||
| inherit from Loggable as well as define a few special methods (via | |||||
| macros), get and set methods, and have contructors and destructors | |||||
| that call log_create() and log_destroy() in the appropriate | |||||
| order. Any action that might affect multiple loggable objects | |||||
| *must* be braced by calls to Loggable::block_start() and | |||||
| Loggable::block_end() in order for Undo to work properly. */ | |||||
| #include "Loggable.H" | #include "Loggable.H" | ||||
| @@ -20,6 +20,8 @@ | |||||
| /* Routings for opening/closing/creation of projects. All the actual | /* Routings for opening/closing/creation of projects. All the actual | ||||
| project state belongs to Timeline and other classes. */ | project state belongs to Timeline and other classes. */ | ||||
| /* Project management routines. */ | |||||
| #include <stdio.h> | #include <stdio.h> | ||||
| #include <stdlib.h> | #include <stdlib.h> | ||||
| #include <string.h> | #include <string.h> | ||||
| @@ -17,6 +17,9 @@ | |||||
| /* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ | /* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ | ||||
| /*******************************************************************************/ | /*******************************************************************************/ | ||||
| /* This is the Timeline widget, which contains all the tracks and | |||||
| * provides cursor overlays, scrolling, zooming, measure lines, tempo | |||||
| * map and just about everything else. */ | |||||
| #include <FL/Fl_Scroll.H> | #include <FL/Fl_Scroll.H> | ||||
| #include <FL/Fl_Pack.H> | #include <FL/Fl_Pack.H> | ||||
| @@ -17,6 +17,12 @@ | |||||
| /* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ | /* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ | ||||
| /*******************************************************************************/ | /*******************************************************************************/ | ||||
| /* A Track is a container for various sequences; the sequence, the | |||||
| * takes (inactive sequences), annotation sequences, control | |||||
| * sequences */ | |||||
| /* TODO: split into Track and Audio_Track (and maybe later Video_Track | |||||
| * and MIDI_Track */ | |||||
| #include "Track.H" | #include "Track.H" | ||||
| #include "Transport.H" | #include "Transport.H" | ||||
| @@ -17,6 +17,7 @@ | |||||
| /* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ | /* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ | ||||
| /*******************************************************************************/ | /*******************************************************************************/ | ||||
| /* Controls the audio transport */ | |||||
| #include "Transport.H" | #include "Transport.H" | ||||
| @@ -26,56 +27,7 @@ | |||||
| #define client engine->client() | #define client engine->client() | ||||
| void | |||||
| Transport::poll ( void ) | |||||
| { | |||||
| jack_transport_state_t ts; | |||||
| ts = jack_transport_query( client, this ); | |||||
| rolling = ts == JackTransportRolling; | |||||
| } | |||||
| void | |||||
| Transport::locate ( nframes_t frame ) | |||||
| { | |||||
| jack_transport_locate( client, frame ); | |||||
| } | |||||
| void | |||||
| Transport::start ( void ) | |||||
| { | |||||
| // MESSAGE( "Starting transport" ); | |||||
| if ( _record_button->value() ) | |||||
| timeline->record(); | |||||
| jack_transport_start( client ); | |||||
| } | |||||
| void | |||||
| Transport::stop ( void ) | |||||
| { | |||||
| // MESSAGE( "Stopping transport" ); | |||||
| if ( _record_button->value() ) | |||||
| toggle_record(); | |||||
| jack_transport_stop( client ); | |||||
| } | |||||
| void | |||||
| Transport::toggle ( void ) | |||||
| { | |||||
| if ( rolling ) | |||||
| stop(); | |||||
| else | |||||
| start(); | |||||
| } | |||||
| /*******/ | |||||
| /* GUI */ | |||||
| /*******/ | |||||
| Transport::Transport ( int X, int Y, int W, int H, const char *L ) | Transport::Transport ( int X, int Y, int W, int H, const char *L ) | ||||
| : Fl_Pack( X, Y, W, H, L ) | : Fl_Pack( X, Y, W, H, L ) | ||||
| @@ -118,6 +70,8 @@ Transport::Transport ( int X, int Y, int W, int H, const char *L ) | |||||
| end(); | end(); | ||||
| } | } | ||||
| void | void | ||||
| Transport::cb_button ( Fl_Widget *w, void *v ) | Transport::cb_button ( Fl_Widget *w, void *v ) | ||||
| { | { | ||||
| @@ -174,3 +128,53 @@ Transport::handle ( int m ) | |||||
| return Fl_Pack::handle( m ); | return Fl_Pack::handle( m ); | ||||
| } | } | ||||
| /***********/ | |||||
| /* Control */ | |||||
| /***********/ | |||||
| void | |||||
| Transport::poll ( void ) | |||||
| { | |||||
| jack_transport_state_t ts; | |||||
| ts = jack_transport_query( client, this ); | |||||
| rolling = ts == JackTransportRolling; | |||||
| } | |||||
| void | |||||
| Transport::locate ( nframes_t frame ) | |||||
| { | |||||
| jack_transport_locate( client, frame ); | |||||
| } | |||||
| void | |||||
| Transport::start ( void ) | |||||
| { | |||||
| // MESSAGE( "Starting transport" ); | |||||
| if ( _record_button->value() ) | |||||
| timeline->record(); | |||||
| jack_transport_start( client ); | |||||
| } | |||||
| void | |||||
| Transport::stop ( void ) | |||||
| { | |||||
| // MESSAGE( "Stopping transport" ); | |||||
| if ( _record_button->value() ) | |||||
| toggle_record(); | |||||
| jack_transport_stop( client ); | |||||
| } | |||||
| void | |||||
| Transport::toggle ( void ) | |||||
| { | |||||
| if ( rolling ) | |||||
| stop(); | |||||
| else | |||||
| start(); | |||||
| } | |||||
| @@ -17,6 +17,8 @@ | |||||
| /* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ | /* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ | ||||
| /*******************************************************************************/ | /*******************************************************************************/ | ||||
| /* routines to draw a waveform from peak data */ | |||||
| #include <FL/fl_draw.H> | #include <FL/fl_draw.H> | ||||
| #include "Waveform.H" | #include "Waveform.H" | ||||