summaryrefslogtreecommitdiff
path: root/song.h
blob: c8f08a1592c88ae9399197119cbeceab11d1dbbf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#ifndef __SONG_H__
#define __SONG_H__

#include "chordNote.h"
#include <vector>

// Contains a song for a guitar hero clone
class Song {
  private:
    std::string title;
    std::string artist;
    int duration;     // in ms
    std::string audioFile; // path to audio file
    std::vector<ChordNote> chords;
  public:
    Song(std::string chartFile);
    ~Song();
    void consolidate(); // merges chords with the same start/end times
                        // into a single chord
    ChordNote operator[](int index);
    int size();

    std::string getTitle();
    std::string getArtist();
    int getDuration();
    std::string getAudioFile();
    std::vector<ChordNote> getChords();
};

//#include "song.cpp"
#endif // __SONG_H__