Music Player Library for YMZ294 Sound Generator LSI

Dependents:   Workshop_SSG

MusicString.cpp

Committer:
yamaguch
Date:
2011-07-06
Revision:
0:85d8bf9fb6fe

File content as of revision 0:85d8bf9fb6fe:

#include "MusicString.h"

MusicString::MusicString(const char *s) : mstring(s), current(s) {
}

MusicString::MusicString(const MusicString& ms) : mstring(ms.mstring), current(ms.mstring) {
}

bool MusicString::isNull() {
    return current == 0;
}

void MusicString::rewind() {
    current = mstring;
}

Note MusicString::getNextNote() {
    if (hasMoreNote()) {
        char buf[16];
        int i = 0;
        do {
            buf[i++] = *current++;
        } while (*current && *current > ' ' && *current != '|' && *current != '(' && *current != ')');
        buf[i] = 0;
        return Note(buf);
    } else
        return Note();
}

bool MusicString::hasMoreNote() {
    while (*current && *current <= ' ' || *current == '|' || *current == '(' || *current == ')')
        current++;
    return (*current);
}