00001 #ifndef __CTimeSignature__ 00002 #define __CTimeSignature__ 00003 00004 #include <Basics/CCountedObject.hpp> 00005 using Exponent::Basics::CCountedObject; 00006 00007 // =========================================================================== 00008 00009 namespace Exponent 00010 { 00011 namespace Music 00012 { 00030 class CTimeSignature : public CCountedObject 00031 { 00033 EXPONENT_CLASS_DECLARATION; 00036 // =========================================================================== 00037 00038 public: 00039 00045 CTimeSignature(const long numerator = 4, const long denominator = 4); 00046 00051 CTimeSignature(const CTimeSignature &timeSig); 00052 00056 virtual ~CTimeSignature(); 00057 00058 // =========================================================================== 00059 00064 CTimeSignature &operator = (const CTimeSignature &timeSig); 00065 00066 // =========================================================================== 00067 00073 void setTimeSignature(const long numerator, const long denominator); 00074 00079 void setNumerator(const long numerator); 00080 00085 void setDenominator(const long denominator); 00086 00087 // =========================================================================== 00088 00093 long getDenominator() const; 00094 00099 long getNumerator() const; 00100 00101 // =========================================================================== 00102 00107 double getAsDecimal() const; 00108 00109 // =========================================================================== 00110 00111 protected: 00112 00113 // =========================================================================== 00114 00115 long m_numerator; 00116 long m_denominator; 00117 }; 00118 } 00119 } 00120 #endif // End of CTimeSignature.hpp