Main Page | Namespace List | Class Hierarchy | Alphabetical List | Compound List | File List | Namespace Members | Compound Members | File Members

/home/pete/Work/TSE3.svn/tse3/src/tse3/app/Modified.h

Go to the documentation of this file.
00001 /*
00002  * @(#)app/Modified.h 1.00 27 October 2000
00003  *
00004  * Copyright (c) 2000 Pete Goodliffe (pete@cthree.org)
00005  *
00006  * This file is part of TSE3 - the Trax Sequencer Engine version 3.00.
00007  *
00008  * This library is modifiable/redistributable under the terms of the GNU
00009  * General Public License.
00010  *
00011  * You should have received a copy of the GNU General Public License along
00012  * with this program; see the file COPYING. If not, write to the Free Software
00013  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
00014  *
00015  */
00016 
00017 #ifndef TSE3_APP_MODIFIED_H
00018 #define TSE3_APP_MODIFIED_H
00019 
00020 #include "tse3/listen/app/Modified.h"
00021 
00022 #include "tse3/Notifier.h"
00023 #include "tse3/listen/Song.h"
00024 #include "tse3/listen/Track.h"
00025 #include "tse3/listen/Part.h"
00026 #include "tse3/listen/DisplayParams.h"
00027 #include "tse3/listen/Phrase.h"
00028 #include "tse3/listen/PhraseList.h"
00029 #include "tse3/listen/FlagTrack.h"
00030 #include "tse3/listen/TimeSigTrack.h"
00031 #include "tse3/listen/TempoTrack.h"
00032 #include "tse3/listen/MidiFilter.h"
00033 #include "tse3/listen/MidiParams.h"
00034 
00035 #include <cstddef>
00036 
00037 namespace TSE3
00038 {
00039     namespace App
00040     {
00053         class Modified : public TSE3::Notifier<ModifiedListener>,
00054                          public TSE3::Listener<TSE3::SongListener>,
00055                          public TSE3::Listener<TSE3::TrackListener>,
00056                          public TSE3::Listener<TSE3::PartListener>,
00057                          public TSE3::Listener<TSE3::PhraseListListener>,
00058                          public TSE3::Listener<TSE3::MidiParamsListener>,
00059                          public TSE3::Listener<TSE3::DisplayParamsListener>,
00060                          public TSE3::Listener<TSE3::FlagTrackListener>,
00061                          public TSE3::Listener<TSE3::TimeSigTrackListener>,
00062                          public TSE3::Listener<TSE3::TempoTrackListener>,
00063                          public TSE3::Listener<TSE3::MidiFilterListener>,
00064                          public TSE3::Listener<TSE3::PhraseListener>
00065         {
00066             public:
00067 
00076                 Modified(TSE3::Song *song = 0);
00077 
00085                 TSE3::Song *song() const { return _song; }
00086 
00094                 void setSong(TSE3::Song *song);
00095 
00103                 bool modified() const { return _modified; }
00104 
00112                 void setModified(bool modified = true);
00113 
00117                 virtual void Song_InfoAltered(Song *);
00118 
00122                 virtual void Song_FromAltered(Song *, Clock /*from*/);
00123 
00127                 virtual void Song_ToAltered(Song *, Clock /*to*/);
00128 
00132                 virtual void Song_TrackInserted(Song *, Track *);
00133 
00137                 virtual void Song_TrackRemoved(Song *, Track *, size_t);
00138 
00142                 virtual void Track_TitleAltered(Track *);
00143 
00147                 virtual void Track_PartInserted(Track *, Part *);
00148 
00152                 virtual void Track_PartRemoved(Track *, Part *);
00153 
00157                 virtual void Part_StartAltered(Part *, Clock /*start*/);
00158 
00162                 virtual void Part_EndAltered(Part *, Clock /*end*/);
00163 
00167                 virtual void Part_RepeatAltered(Part *, Clock /*repeat*/);
00168 
00172                 virtual void Part_PhraseAltered(Part *, Phrase * /*phrase*/);
00173 
00177                 virtual void PhraseList_Inserted(PhraseList *, Phrase * /*p*/);
00178 
00182                 virtual void PhraseList_Removed(PhraseList *, Phrase * /*p*/);
00183 
00187                 virtual void MidiParams_Altered(MidiParams *, int /*what*/);
00188 
00192                 virtual void DisplayParams_Altered(DisplayParams *);
00193 
00197                 virtual void EventTrack_EventAltered(EventTrack<Flag> *,
00198                                                      size_t);
00199 
00203                 virtual void EventTrack_EventInserted(EventTrack<Flag> *,
00204                                                       size_t);
00205 
00209                 virtual void EventTrack_EventErased(EventTrack<Flag> *,
00210                                                     size_t);
00211 
00215                 virtual void EventTrack_EventAltered(EventTrack<TimeSig> *);
00216 
00220                 virtual void EventTrack_EventInserted(EventTrack<TimeSig> *);
00221 
00225                 virtual void EventTrack_EventErased(EventTrack<TimeSig> *);
00226 
00230                 virtual void EventTrack_EventAltered(EventTrack<Tempo> *);
00231 
00235                 virtual void EventTrack_EventInserted(EventTrack<Tempo> *);
00236 
00240                 virtual void EventTrack_EventErased(EventTrack<Tempo> *);
00241 
00245                 void MidiFilter_Altered(MidiFilter *, int /*what*/);
00246 
00247             private:
00248 
00249                 void attachToTrack(TSE3::Track *track);
00250                 void detachFromTrack(TSE3::Track *track);
00251                 void attachToPart(TSE3::Part *part);
00252                 void detachFromPart(TSE3::Part *part);
00253 
00254                 TSE3::Song *_song;
00255                 bool        _modified;
00256         };
00257     }
00258 }
00259 
00260 #endif

Generated on Wed May 25 14:45:04 2005 for TSE3 by doxygen 1.3.2