Initial
This commit is contained in:
70
guitar/Fingering.hpp
Normal file
70
guitar/Fingering.hpp
Normal file
@@ -0,0 +1,70 @@
|
||||
#ifndef _GUITAR_FINGERING_HPP_
|
||||
#define _GUITAR_FINGERING_HPP_
|
||||
#ifndef _MUSIC_SCALE_HPP_
|
||||
#include <music/scale.hpp>
|
||||
#endif
|
||||
#ifndef _GUITAR_FRETBOARD_HPP_
|
||||
#include <guitar/Fretboard.hpp>
|
||||
#endif
|
||||
#ifndef _GUITAR_FRETTEDNOTE_HPP_
|
||||
#include <guitar/FrettedNote.hpp>
|
||||
#endif
|
||||
|
||||
class Fingering
|
||||
{
|
||||
public:
|
||||
Fingering();
|
||||
virtual ~Fingering();
|
||||
FrettedNotes getFingering(const Scale &scale);
|
||||
private:
|
||||
enum{MaxStretchFrets=4,DefaultString=5};
|
||||
bool getFirst(FrettedNote &frettedNote,const Note ¬e);
|
||||
bool getNext(FrettedNote &frettedNote,const FrettedNote &prevFrettedNote,const Note ¬e);
|
||||
int getCurrString(void)const;
|
||||
void setCurrString(int currString);
|
||||
int getCurrFret(void)const;
|
||||
void setCurrFret(int currFret);
|
||||
|
||||
Fretboard mFretboard;
|
||||
int mMaxStretchFrets;
|
||||
int mStartString;
|
||||
int mCurrString;
|
||||
int mCurrFret;
|
||||
int mAnchorFret;
|
||||
};
|
||||
|
||||
inline
|
||||
Fingering::Fingering()
|
||||
: mMaxStretchFrets(MaxStretchFrets), mStartString(DefaultString), mCurrString(mStartString), mCurrFret(0)
|
||||
{
|
||||
}
|
||||
|
||||
inline
|
||||
Fingering::~Fingering()
|
||||
{
|
||||
}
|
||||
|
||||
inline
|
||||
int Fingering::getCurrString(void)const
|
||||
{
|
||||
return mCurrString;
|
||||
}
|
||||
|
||||
inline
|
||||
void Fingering::setCurrString(int currString)
|
||||
{
|
||||
mCurrString=currString;
|
||||
}
|
||||
|
||||
inline
|
||||
int Fingering::getCurrFret(void)const
|
||||
{
|
||||
return mCurrFret;
|
||||
}
|
||||
|
||||
inline
|
||||
void Fingering::setCurrFret(int currFret)
|
||||
{
|
||||
mCurrFret=currFret;
|
||||
}
|
||||
#endif
|
||||
Reference in New Issue
Block a user