// Note: Instrumentation statements are highlighted in green 

#ifndef __GUITAR_FRETBOARD_HPP
#define __GUITAR_FRETBOARD_HPP

#include <stl\vvector>
#include "fret.hpp"


///////////////////////////////////////////////////////////////////////////////
// GuitarFretboard class
///////////////////////////////////////////////////////////////////////////////

class GuitarFretboard: public VObject  // Add VObject to the inheritance chain
{
DECLARE_VISIBILITY(GuitarFretboard)  // Instrumentation statement

public:    // data
  MusicalNoteTable noteTable;
  FretVector fretTable;
  GuitarStringVector stringTable;
  FrettedNoteTable allFrettedNotes;
  FrettedNoteTable activeFrettedNotes;
  unsigned short firstFret;
  unsigned short lastFret;
  FrettedNote * currentNotePointer;

public:    // functions
  GuitarFretboard(void);
  GuitarFretboard(const GuitarFretboard & fret_board);
  virtual ~GuitarFretboard(void);
  GuitarFretboard & operator=(const GuitarFretboard &fret_board);
  void CreateFretTable(void);
  void CreateStringTable(void);
  void CreateAllFrettedNotes(void);
  void CreateScale(unsigned short scale_flags, unsigned short key_flags,
                   unsigned short first_fret, unsigned short last_fret);
  void DisplayNote(unsigned short midi_number);

};
DECLARE_VISIBILITY_CREATOR(GuitarFretboard)  // Instrumentation statement


///////////////////////////////////////////////////////////////////////////////
// GuitarScaleViewer class
///////////////////////////////////////////////////////////////////////////////

class GuitarScaleViewer: public VObject  // Add VObject to the inheritance chain
{
DECLARE_VISIBILITY(GuitarScaleViewer)  // Instrumentation statement

public:    // data
  unsigned short keyFlags;
  unsigned short scaleFlags;
  unsigned short firstFret;
  unsigned short lastFret;
  GuitarFretboard fretBoard;

public:    // functions
  GuitarScaleViewer(void);
  GuitarScaleViewer(const GuitarScaleViewer & fret_board);
  virtual ~GuitarScaleViewer(void);
  GuitarScaleViewer & operator=(const GuitarScaleViewer &fret_board);
  void CreateScale(void);
  void ClearScale(void);
  virtual unsigned short dataChangeNotification(void * member_ref, HVIEW h_view, unsigned short change_type);
};
DECLARE_VISIBILITY_CREATOR(GuitarScaleViewer)  // Instrumentation statement

#endif   // __GUITAR_FRETBOARD_HPP


Copyright 2002-2007 Outerface Technologies, Inc.