Initial
This commit is contained in:
158
guitar/FrettedNote.hpp
Normal file
158
guitar/FrettedNote.hpp
Normal file
@@ -0,0 +1,158 @@
|
||||
#ifndef _GUITAR_FRETTEDNOTE_HPP_
|
||||
#define _GUITAR_FRETTEDNOTE_HPP_
|
||||
#ifndef _COMMON_STDIO_HPP_
|
||||
#include <common/stdio.hpp>
|
||||
#endif
|
||||
#ifndef _COMMON_ARRAY_HPP_
|
||||
#include <common/array.hpp>
|
||||
#endif
|
||||
#ifndef _MUSIC_NOTE_HPP_
|
||||
#include <music/note.hpp>
|
||||
#endif
|
||||
#ifndef _GUITAR_ACTION_HPP_
|
||||
#include <guitar/Action.hpp>
|
||||
#endif
|
||||
|
||||
class FrettedNote;
|
||||
|
||||
typedef Array<FrettedNote> FrettedNotes;
|
||||
|
||||
class FrettedNote : public Note
|
||||
{
|
||||
public:
|
||||
FrettedNote();
|
||||
FrettedNote(const FrettedNote &frettedNote);
|
||||
FrettedNote(const Note ¬e,int string,int fret,const Action &action=Action(Action::Pick));
|
||||
virtual ~FrettedNote();
|
||||
FrettedNote &operator=(const FrettedNote &frettedNote);
|
||||
bool operator==(const FrettedNote &frettedNote)const;
|
||||
bool operator>(const FrettedNote &frettedNote)const;
|
||||
bool operator<(const FrettedNote &frettedNote)const;
|
||||
int getString(void)const;
|
||||
void setString(int string);
|
||||
int getFret(void)const;
|
||||
void setFret(int fret);
|
||||
void setNote(const Note ¬e);
|
||||
const Note &getNote(void)const;
|
||||
const Action &getAction(void)const;
|
||||
void setAction(const Action &action);
|
||||
String toString(void)const;
|
||||
private:
|
||||
int mString;
|
||||
int mFret;
|
||||
Action mAction;
|
||||
};
|
||||
|
||||
inline
|
||||
FrettedNote::FrettedNote(const FrettedNote &frettedNote)
|
||||
{
|
||||
*this=frettedNote;
|
||||
}
|
||||
|
||||
inline
|
||||
FrettedNote::FrettedNote()
|
||||
: Note(Note::E,4), mString(0), mFret(0)
|
||||
{
|
||||
}
|
||||
|
||||
inline
|
||||
FrettedNote::FrettedNote(const Note ¬e,int string,int fret,const Action &action)
|
||||
: Note(note), mString(string), mFret(fret), mAction(action)
|
||||
{
|
||||
}
|
||||
|
||||
inline
|
||||
FrettedNote::~FrettedNote()
|
||||
{
|
||||
}
|
||||
|
||||
inline
|
||||
FrettedNote &FrettedNote::operator=(const FrettedNote &frettedNote)
|
||||
{
|
||||
setString(frettedNote.getString());
|
||||
setFret(frettedNote.getFret());
|
||||
(Note&)*this=(Note&)frettedNote;
|
||||
setAction(frettedNote.getAction());
|
||||
return *this;
|
||||
}
|
||||
|
||||
inline
|
||||
bool FrettedNote::operator==(const FrettedNote &frettedNote)const
|
||||
{
|
||||
if(getString()==frettedNote.getString()&&getFret()==frettedNote.getFret())
|
||||
return (Note&)*this==(Note&)frettedNote;
|
||||
return false;
|
||||
}
|
||||
|
||||
inline
|
||||
bool FrettedNote::operator>(const FrettedNote &frettedNote)const
|
||||
{
|
||||
if(getString()>frettedNote.getString())return true;
|
||||
if(getFret()>frettedNote.getFret())return true;
|
||||
return (Note&)*this>(Note&)frettedNote;
|
||||
}
|
||||
|
||||
inline
|
||||
bool FrettedNote::operator<(const FrettedNote &frettedNote)const
|
||||
{
|
||||
if(getString()<frettedNote.getString())return true;
|
||||
if(getFret()<frettedNote.getFret())return true;
|
||||
return (Note&)*this<(Note&)frettedNote;
|
||||
}
|
||||
|
||||
inline
|
||||
int FrettedNote::getString(void)const
|
||||
{
|
||||
return mString;
|
||||
}
|
||||
|
||||
inline
|
||||
void FrettedNote::setString(int string)
|
||||
{
|
||||
mString=string;
|
||||
}
|
||||
|
||||
inline
|
||||
int FrettedNote::getFret(void)const
|
||||
{
|
||||
return mFret;
|
||||
}
|
||||
|
||||
inline
|
||||
void FrettedNote::setFret(int fret)
|
||||
{
|
||||
mFret=fret;
|
||||
}
|
||||
|
||||
inline
|
||||
void FrettedNote::setNote(const Note ¬e)
|
||||
{
|
||||
(Note&)*this=note;
|
||||
}
|
||||
|
||||
inline
|
||||
const Note &FrettedNote::getNote(void)const
|
||||
{
|
||||
return (Note&)*this;
|
||||
}
|
||||
|
||||
inline
|
||||
const Action &FrettedNote::getAction(void)const
|
||||
{
|
||||
return mAction;
|
||||
}
|
||||
|
||||
inline
|
||||
void FrettedNote::setAction(const Action &action)
|
||||
{
|
||||
mAction=action;
|
||||
}
|
||||
|
||||
inline
|
||||
String FrettedNote::toString(void)const
|
||||
{
|
||||
String str;
|
||||
::sprintf(str.str(),"[String=%d Fret=%d ",mString,mFret);
|
||||
return str+String("Note=")+Note::toStringWithOctave()+String(" Action=")+mAction.toString()+String("]");
|
||||
}
|
||||
#endif
|
||||
Reference in New Issue
Block a user