46 lines
956 B
C++
46 lines
956 B
C++
#ifndef _GUITAR_REQUIREMENTS_HPP_
|
|
#define _GUITAR_REQUIREMENTS_HPP_
|
|
#ifndef _COMMON_ARRAY_HPP_
|
|
#include <common/array.hpp>
|
|
#endif
|
|
#ifndef _GUITAR_ORDERING_HPP_
|
|
#include <guitar/ordering.hpp>
|
|
#endif
|
|
#ifndef _GUITAR_NOTEPATH_HPP_
|
|
#include <guitar/notepath.hpp>
|
|
#endif
|
|
#ifndef _GUITAR_REQUIREMENT_HPP_
|
|
#include <guitar/requirement.hpp>
|
|
#endif
|
|
|
|
class Requirements : public Array<Requirement>
|
|
{
|
|
public:
|
|
Requirements(void);
|
|
Requirements(Block<Note> ¬es);
|
|
virtual ~Requirements();
|
|
bool satisfyRequirements(NotePaths ¬ePaths);
|
|
void setRequirements(Block<Note> ¬es);
|
|
private:
|
|
bool satisfyRequirement(NotePath ¬ePath);
|
|
bool haveRequirement(const FrettedNote &frettedNote);
|
|
bool isPositionAvailable(const FrettedNote &frettedNote,PtrRequirement &requirement);
|
|
};
|
|
|
|
inline
|
|
Requirements::Requirements(void)
|
|
{
|
|
}
|
|
|
|
inline
|
|
Requirements::Requirements(Block<Note> ¬es)
|
|
{
|
|
setRequirements(notes);
|
|
}
|
|
|
|
inline
|
|
Requirements::~Requirements()
|
|
{
|
|
}
|
|
#endif
|