// Chord Diagram Functions
/// Sets the contents of the ChordDiagram object
/// @param chordName Chord name represented in the chord diagram
/// @param topFret The fret represented at the top of the chord diagram (zero =
/// the nut)
/// @param fretNumbers Fret numbers for each string in the chord diagram (from high to low)
/// @return True if the chord diagram was set, false if not
bool ChordDiagram::SetChordDiagram(const ChordName& chordName, uint8_t topFret,
                                   const std::vector<uint8_t>& fretNumbers)
{
    SetChordName(chordName);
    if (!SetTopFret(topFret))
        return false;
    return AddFretNumbers(fretNumbers);
}
/// Primary Constructor
/// @param chordName Chord name represented in the chord diagram
/// @param topFret The fret represented at the top of the chord diagram (zero = the nut)
/// @param fretNumber1 Fret number for the 1st string in the chord diagram (for standard guitar tuning, this is the high E string)
/// @param fretNumber2 Fret number for the 2nd string in the chord diagram
/// @param fretNumber3 Fret number for the 3rd string in the chord diagram
/// @param fretNumber4 Fret number for the 4th string in the chord diagram
/// @param fretNumber5 Fret number for the 5th string in the chord diagram
/// @param fretNumber6 Fret number for the 6th string in the chord diagram
/// @param fretNumber7 Fret number for the 7th string in the chord diagram
ChordDiagram::ChordDiagram(const ChordName& chordName, wxByte topFret, wxByte fretNumber1, wxByte fretNumber2, wxByte fretNumber3, wxByte fretNumber4, wxByte fretNumber5, wxByte fretNumber6, wxByte fretNumber7) :
    m_topFret(topFret)
{
    //------Last Checked------//
    // - Jan 15, 2005
    wxASSERT(IsValidTopFret(topFret));
    SetChordName(chordName);
    AddFretNumbers(fretNumber1, fretNumber2, fretNumber3, fretNumber4, fretNumber5, fretNumber6, fretNumber7);
}
// Chord Diagram Functions
/// Sets the contents of the ChordDiagram object
/// @param chordName Chord name represented in the chord diagram
/// @param topFret The fret represented at the top of the chord diagram (zero = the nut)
/// @param fretNumber1 Fret number for the 1st string in the chord diagram (for standard guitar tuning, this is the high E string)
/// @param fretNumber2 Fret number for the 2nd string in the chord diagram
/// @param fretNumber3 Fret number for the 3rd string in the chord diagram
/// @param fretNumber4 Fret number for the 4th string in the chord diagram
/// @param fretNumber5 Fret number for the 5th string in the chord diagram
/// @param fretNumber6 Fret number for the 6th string in the chord diagram
/// @param fretNumber7 Fret number for the 7th string in the chord diagram
/// @return True if the chord diagram was set, false if not
bool ChordDiagram::SetChordDiagram(const ChordName& chordName, wxByte topFret, wxByte fretNumber1, wxByte fretNumber2, wxByte fretNumber3, wxByte fretNumber4, wxByte fretNumber5, wxByte fretNumber6, wxByte fretNumber7)
{
    //------Last Checked------//
    // - Jan 15, 2005
    SetChordName(chordName);
    if (!SetTopFret(topFret))
        return (false);
    return (AddFretNumbers(fretNumber1, fretNumber2, fretNumber3, fretNumber4, fretNumber5, fretNumber6, fretNumber7));
}