diff options
author | David Robillard <d@drobilla.net> | 2008-01-01 19:52:36 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2008-01-01 19:52:36 +0000 |
commit | cb21a7b08354134307637eb822a3c1ad9cb7ed23 (patch) | |
tree | fed8b9484141e723317a00886b0bd8bc841c9397 /src | |
parent | 143d9b1599a82a35165fd8e17f249998f95f15d0 (diff) | |
download | raul-cb21a7b08354134307637eb822a3c1ad9cb7ed23.tar.gz raul-cb21a7b08354134307637eb822a3c1ad9cb7ed23.tar.bz2 raul-cb21a7b08354134307637eb822a3c1ad9cb7ed23.zip |
RAUL code cleanup.
git-svn-id: http://svn.drobilla.net/lad/raul@999 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src')
-rw-r--r-- | src/Path.cpp | 27 | ||||
-rw-r--r-- | src/SMFReader.cpp | 25 | ||||
-rw-r--r-- | src/SMFWriter.cpp | 73 |
3 files changed, 17 insertions, 108 deletions
diff --git a/src/Path.cpp b/src/Path.cpp index 284cf16..04f89e7 100644 --- a/src/Path.cpp +++ b/src/Path.cpp @@ -17,6 +17,8 @@ #include <raul/Path.hpp> +using namespace std; + namespace Raul { @@ -124,27 +126,6 @@ Path::nameify(const std::basic_string<char>& str) void Path::replace_invalid_chars(string& str, bool replace_slash) { -#if 0 - for (size_t i=0; i < str.length(); ++i) { - if (str[i] == ' ' || str[i] == '_') { - str[i+1] = std::toupper(str[i+1]); // capitalize next char - str = str.substr(0, i) + str.substr(i+1); // chop space/underscore - --i; - } else if (str[i] == '[' || str[i] == '{') { - str[i] = '('; - } else if (str[i] == ']' || str[i] == '}') { - str[i] = ')'; - } else if (str[i] < 32 || str.at(i) > 126 - || str[i] == '#' - || str[i] == '*' - || str[i] == ',' - || str[i] == '?' - || (replace_slash && str[i] == '/')) { - str[i] = '.'; - } - } -#endif - size_t open_bracket = str.find_first_of('('); if (open_bracket != string::npos) str = str.substr(0, open_bracket-1); @@ -165,10 +146,8 @@ Path::replace_invalid_chars(string& str, bool replace_slash) // Kill CamelCase in favour of god_fearing_symbol_names for (size_t i=1; i < str.length(); ++i) { - if (str[i] >= 'A' && str[i] <= 'Z' && str[i-1] >= 'a' && str[i-1] <= 'z') { - //str[i] = std::tolower(str[i]); + if (str[i] >= 'A' && str[i] <= 'Z' && str[i-1] >= 'a' && str[i-1] <= 'z') str = str.substr(0, i) + '_' + str.substr(i); - } } for (size_t i=0; i < str.length(); ++i) { diff --git a/src/SMFReader.cpp b/src/SMFReader.cpp index 9b2e4de..a27939d 100644 --- a/src/SMFReader.cpp +++ b/src/SMFReader.cpp @@ -73,6 +73,7 @@ midi_event_size(unsigned char status) SMFReader::SMFReader() : _fd(NULL) , _ppqn(0) + , _track(0) , _track_size(0) { } @@ -127,14 +128,6 @@ SMFReader::open(const string& filename) _ppqn = GUINT16_FROM_BE(ppqn_be); seek_to_track(1); - // Read Track size (skip bytes 14..17 'Mtrk') - // FIXME: first track read only - /*fseek(_fd, 18, SEEK_SET); - uint32_t track_size_be = 0; - fread(&track_size_be, 4, 1, _fd); - _track_size = GUINT32_FROM_BE(track_size_be); - std::cerr << "SMF - read track size " << _track_size << std::endl; - */ return true; } else { @@ -147,12 +140,12 @@ SMFReader::open(const string& filename) * Returns true if specified track was found. */ bool -SMFReader::seek_to_track(unsigned track) +SMFReader::seek_to_track(unsigned track) throw (std::logic_error) { assert(track > 0); if (!_fd) - throw logic_error("Attempt to seek to track on unopen SMF file."); + throw logic_error("Attempt to seek to track on unopened SMF file."); unsigned track_pos = 0; @@ -182,7 +175,7 @@ SMFReader::seek_to_track(unsigned track) } if (!feof(_fd) && track_pos == track) { - //_track = track; + _track = track; _track_size = chunk_size; return true; } else { @@ -205,10 +198,14 @@ SMFReader::seek_to_track(unsigned track) * set to the actual size of the event. */ int -SMFReader::read_event(size_t buf_len, unsigned char* buf, uint32_t* ev_size, uint32_t* delta_time) +SMFReader::read_event(size_t buf_len, + uint8_t* buf, + uint32_t* ev_size, + uint32_t* delta_time) throw (std::logic_error) { - // - 4 is for the EOT event, which we don't actually want to read - //if (feof(_fd) || ftell(_fd) >= HEADER_SIZE + _track_size - 4) { + if (_track == 0) + throw logic_error("Attempt to read from unopened SMF file"); + if (!_fd || feof(_fd)) { return -1; } diff --git a/src/SMFWriter.cpp b/src/SMFWriter.cpp index b339b46..b141e30 100644 --- a/src/SMFWriter.cpp +++ b/src/SMFWriter.cpp @@ -71,48 +71,6 @@ SMFWriter::start(const string& filename, return (_fd == 0) ? -1 : 0; } -#if 0 -jack_nframes_t -SMFWriter::write_unlocked (MidiRingBuffer& src, jack_nframes_t cnt) -{ - //cerr << "SMF WRITE -- " << _length << "--" << cnt << endl; - - MidiBuffer buf(1024); // FIXME: allocation, size? - src.read(buf, /*_length*/0, _length + cnt); // FIXME? - - fseek(_fd, 0, SEEK_END); - - // FIXME: start of source time? - - for (size_t i=0; i < buf.size(); ++i) { - const MidiEvent& ev = buf[i]; - assert(ev.time >= _timeline_position); - uint32_t delta_time = (ev.time - _timeline_position) - _last_ev_time; - - /*printf("SMF - writing event, delta = %u, size = %zu, data = ", - delta_time, ev.size); - for (size_t i=0; i < ev.size; ++i) { - printf("%X ", ev.buffer[i]); - } - printf("\n"); - */ - size_t stamp_size = write_var_len(delta_time); - fwrite(ev.buffer, 1, ev.size, _fd); - _last_ev_time += delta_time; - _track_size += stamp_size + ev.size; - } - - fflush(_fd); - - if (buf.size() > 0) { - ViewDataRangeReady (_length, cnt); /* EMIT SIGNAL */ - } - - update_length(_length, cnt); - return cnt; -} -#endif - /** Write an event at the end of the file. * @@ -184,9 +142,9 @@ SMFWriter::write_header() assert(_fd); - const uint16_t type = GUINT16_TO_BE(0); // SMF Type 0 (single track) - const uint16_t ntracks = GUINT16_TO_BE(1); // Number of tracks (always 1 for Type 0) - const uint16_t division = GUINT16_TO_BE(_ppqn); // Number of tracks (always 1 for Type 0) + const uint16_t type = GUINT16_TO_BE(0); // SMF Type 0 (single track) + const uint16_t ntracks = GUINT16_TO_BE(1); // Number of tracks (always 1 for Type 0) + const uint16_t division = GUINT16_TO_BE(_ppqn); // Number of tracks (always 1 for Type 0) char data[6]; memcpy(data, &type, 2); @@ -264,30 +222,5 @@ SMFWriter::write_var_len(uint32_t value) } -#if 0 -uint32_t -SMFWriter::read_var_len() const -{ - assert(!feof(_fd)); - - //int offset = ftell(_fd); - //cerr << "SMF - reading var len at " << offset << endl; - - uint32_t value; - unsigned char c; - - if ( (value = getc(_fd)) & 0x80 ) { - value &= 0x7F; - do { - assert(!feof(_fd)); - value = (value << 7) + ((c = getc(_fd)) & 0x7F); - } while (c & 0x80); - } - - return value; -} -#endif - - } // namespace Raul |