Main Page | Modules | Class Hierarchy | Alphabetical List | Compound List | File List | Compound Members | Related Pages

TPartList.h

00001 /*
00002 
00003   MusicXML Library
00004   Copyright (C) 2003  Grame
00005 
00006   This library is free software; you can redistribute it and/or
00007   modify it under the terms of the GNU Lesser General Public
00008   License as published by the Free Software Foundation; either
00009   version 2.1 of the License, or (at your option) any later version.
00010 
00011   This library is distributed in the hope that it will be useful,
00012   but WITHOUT ANY WARRANTY; without even the implied warranty of
00013   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014   Lesser General Public License for more details.
00015 
00016   You should have received a copy of the GNU Lesser General Public
00017   License along with this library; if not, write to the Free Software
00018   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00019 
00020   Grame Research Laboratory, 9 rue du Garet, 69001 Lyon - France
00021   grame@grame.fr
00022 
00023 */
00024 
00025 #ifndef __TPartList__
00026 #define __TPartList__
00027 
00028 #include "exports.h"
00029 #include "smartpointer.h"
00030 #include "TPartGroup.h"
00031 #include "TScorePart.h"
00032 #include "TScoreVisitor.h"
00033 
00034 namespace MusicXML 
00035 {
00036 
00049 class EXP TPartList : public visitable, public smartable {
00050 
00051     public:
00052         EXP friend SMARTP<TPartList> newPartList();
00053           
00054         virtual void accept(TScoreVisitor& visitor);
00055 
00056         long add(const SScorePart& part);
00057         long add(const SPartGroup& part);
00058 
00059         vvector<SPartListElement>& parts()      { return fPartsList; }
00060         
00061     protected:
00062         TPartList() {}
00063         virtual ~TPartList() {}
00064     private:
00065         vvector<SPartListElement> fPartsList;  
00066 };
00067 typedef SMARTP<TPartList> SPartList;
00068 
00069 } // namespace MusicXML
00070 
00071 
00072 #endif

Generated on Tue Mar 23 09:49:43 2004 for LibMusicXML by doxygen 1.3.3