summaryrefslogtreecommitdiff
path: root/song.h
blob: 3a33d843a5f7795c276452820bcc5ab67005a594 (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__