/***************************************************************************
 * main.h
 *
 * This file is part of KTabEdit, a KDE tabulature editor
 *
 * copyright (C) 2003-2007 the KTabEdit development team <mrgwen@gmail.com>
 ***************************************************************************/

/***************************************************************************
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * See the file COPYING for more information.
 ***************************************************************************/

#ifndef MAIN_H
#define MAIN_H

/**
@mainpage KTabEdit
	
@section intro Introduction
	
KGuitar is basically a guitar tabulature editor for K Desktop
Environment. It's much more than just a tab editor. It's features are:
	
- Free GPLed program;
- K Desktop Environment GUI;
- Powerful and convenient tabulature editing, including many effects and classical note score editing for classic instrument players;
- Full and very customizable MIDI to tabulature import and export;
- Support of extra data formats, such as ASCII tabulatures or popular programs' format, such as Guitar Pro's or TablEdit;
- Chord fingering construction tools - chord finder & chord analyzer;
- Highly customizable to suit a lot of possible instruments (not only 	6-stringed guitars, and even not only guitars), including drum tracks, lyrics and other MIDI events.

Well, right now KGuitar is in very alpha state and doesn't support everything stated. However, it already features a nice tabulature editor, though not ultimately powerful, loading/saving its own format (.kg files) and all the chord construction tools.

@section directories Directory structure
@verbatim
	* admin/ - ?
	* src/ - main sources folder
 	   * assistant/  the assistant dialog when KTabEdit is launched for the first time
	   * bendDialog/ the dialog for creating a bend
	   * chord/ the chord generator
	   * clipboard/ clipboard dialog and the code for copy and paste (probably disabled)
	   * fileImporter/ file importer and exporter
	   * options/ options dialog box
	   * sequencer/ the midi playback
	   * tablature/ the framework which stores the tab
	   * tablatureModel/ the tablature model
	   * tablatureplayer/ the tab player
	   * track/ the track viewer
	   * util/ some log functions and pre-post conditions
@endverbatim
	
@section install Installation
see the INSTALL file from the repository root for installation instructions
@subsection tablature How are stored tablatures ?
- A song is represented with the class TabSong
- A song has a list of tracks (TabSong inherits from QPtrList<TabTrack>)
- A track is represented by the class TabTrack (you can add a bar, remove a bar, set the number of frets, ...)
- The class TabBar stores a bar (stores notes, time signature, ...)
- And finally a note(in fact a time) is stored by tabNotes (you can set a fret value, and the effect, ...)
*/

#endif
