00001 /******************************************************************************* 00002 * Copyright (c) 2006 International Business Machines Corporation 00003 * All rights reserved. This program and the accompanying materials 00004 * are made available under the terms of the Common Public License v1.0 00005 * which accompanies this distribution, and is available at 00006 * http://www.opensource.org/licenses/cpl1.0.php 00007 * 00008 * Contributors: 00009 * Douglas Sprague, Joel Wheeler - initial API and implementation 00010 * 00011 *****************************************************************************/ 00012 00013 #ifndef STILSubWaveform_H 00014 #define STILSubWaveform_H 00015 00016 00017 #include "stilcom.h" // Common library 00018 #include "stilblock.h" 00019 #include "stiltimeexpr.h" 00020 #include "stilwaveformevent.h" 00021 00022 #include <list> 00023 00024 //--------------------------------------------------------------------------- 00030 //--------------------------------------------------------------------------- 00031 class STILSubWaveform : public STILBlock { 00032 00033 // - Public members 00034 public: 00035 // - Default constructor 00036 STILSubWaveform(); 00037 00038 // - Copy Constructor 00039 STILSubWaveform(const STILSubWaveform &); 00040 00041 // - Destructor 00042 virtual ~STILSubWaveform(); 00043 00044 // - Assignment operator 00045 STILSubWaveform & operator=(const STILSubWaveform &); 00046 00047 // - Initialize/reset this object 00048 void init(); 00049 00050 // - Write out this obecjt to a file 00051 virtual void write(FILE * pOutFile, LONG indentation=0) const; 00052 00053 00054 // - Set/get the Duration 00055 void setDuration(const STILTimeExpr &); 00056 STILTimeExpr& getDuration() { return m_duration; } 00057 00058 00059 // - Add a waveform event 00060 void addWaveformEvent(const STILWaveformEvent &); 00061 00062 // - Private members 00063 private: 00064 00065 // Update the entity list for copying 00066 void updateEntityList(); 00067 00068 // Duration of the subwaveform 00069 STILTimeExpr m_duration; 00070 00071 // List of WaveformEvents 00072 std::list<STILWaveformEvent> m_WEList; 00073 }; 00074 00075 00076 //-------------------------------------------------------------------------- 00084 //-------------------------------------------------------------------------- 00085 //STILTimeExpr& STILSubWaveform::getDuration() { return m_duration; } 00086 00087 00088 00089 #endif