diff options
author | Robin Gareus <robin@gareus.org> | 2019-06-20 17:21:42 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2019-06-20 18:20:00 +0200 |
commit | 73d90f6a983af8fda0b7f9ac5f66f40513482ecb (patch) | |
tree | 13834dc92783ba2d109ffc3d26c8d8c73f938f36 /ptformat | |
parent | 4f2708e4d29e54f2e8d2d5c5fbf8002905bc1021 (diff) |
API cleanup: const-ness, remove public variables
Do not allow users of the API to modify internal variables,
prefer accessor methods to constant data.
Use const-references whenever possible (don't copy-construct arguments),
likewise prefer direct references over iterators.
Diffstat (limited to 'ptformat')
-rw-r--r-- | ptformat/ptfformat.h | 117 |
1 files changed, 62 insertions, 55 deletions
diff --git a/ptformat/ptfformat.h b/ptformat/ptfformat.h index d4f9c88..5a08596 100644 --- a/ptformat/ptfformat.h +++ b/ptformat/ptfformat.h @@ -42,12 +42,12 @@ public: /* Return values: 0 success -1 could not parse pt session */ - int load(std::string path, int64_t targetsr); + int load(std::string const& path, int64_t targetsr); /* Return values: 0 success -1 could not decrypt pt session */ - int unxor(std::string path); + int unxor(std::string const& path); struct wav_t { std::string filename; @@ -113,117 +113,131 @@ public: track_t (uint16_t idx = 0) : index (idx), playlist (0) {} }; - bool find_track(uint16_t index, std::vector<track_t>::iterator& ti) { - std::vector<track_t>::iterator begin = tracks.begin(); - std::vector<track_t>::iterator finish = tracks.end(); - std::vector<track_t>::iterator found; + bool find_track(uint16_t index, track_t& tt) const { + std::vector<track_t>::const_iterator begin = _tracks.begin(); + std::vector<track_t>::const_iterator finish = _tracks.end(); + std::vector<track_t>::const_iterator found; track_t t (index); if ((found = std::find(begin, finish, t)) != finish) { - ti = found; + tt = *found; return true; } return false; } - bool find_region(uint16_t index, std::vector<region_t>::iterator& ri) { - std::vector<region_t>::iterator begin = regions.begin(); - std::vector<region_t>::iterator finish = regions.end(); - std::vector<region_t>::iterator found; + bool find_region(uint16_t index, region_t& rr) const { + std::vector<region_t>::const_iterator begin = _regions.begin(); + std::vector<region_t>::const_iterator finish = _regions.end(); + std::vector<region_t>::const_iterator found; region_t r; r.index = index; if ((found = std::find(begin, finish, r)) != finish) { - ri = found; + rr = *found; return true; } return false; } - bool find_miditrack(uint16_t index, std::vector<track_t>::iterator& ti) { - std::vector<track_t>::iterator begin = miditracks.begin(); - std::vector<track_t>::iterator finish = miditracks.end(); - std::vector<track_t>::iterator found; + bool find_miditrack(uint16_t index, track_t& tt) const { + std::vector<track_t>::const_iterator begin = _miditracks.begin(); + std::vector<track_t>::const_iterator finish = _miditracks.end(); + std::vector<track_t>::const_iterator found; track_t t (index); if ((found = std::find(begin, finish, t)) != finish) { - ti = found; + tt = *found; return true; } return false; } - bool find_midiregion(uint16_t index, std::vector<region_t>::iterator& ri) { - std::vector<region_t>::iterator begin = midiregions.begin(); - std::vector<region_t>::iterator finish = midiregions.end(); - std::vector<region_t>::iterator found; + bool find_midiregion(uint16_t index, region_t& rr) const { + std::vector<region_t>::const_iterator begin = _midiregions.begin(); + std::vector<region_t>::const_iterator finish = _midiregions.end(); + std::vector<region_t>::const_iterator found; region_t r (index); if ((found = std::find(begin, finish, r)) != finish) { - ri = found; + rr = *found; return true; } return false; } - bool find_wav(uint16_t index, std::vector<wav_t>::iterator& wi) { - std::vector<wav_t>::iterator begin = audiofiles.begin(); - std::vector<wav_t>::iterator finish = audiofiles.end(); - std::vector<wav_t>::iterator found; + bool find_wav(uint16_t index, wav_t& ww) const { + std::vector<wav_t>::const_iterator begin = _audiofiles.begin(); + std::vector<wav_t>::const_iterator finish = _audiofiles.end(); + std::vector<wav_t>::const_iterator found; wav_t w (index); if ((found = std::find(begin, finish, w)) != finish) { - wi = found; + ww = *found; return true; } return false; } - static bool regionexistsin(std::vector<region_t> reg, uint16_t index) { - std::vector<region_t>::iterator begin = reg.begin(); - std::vector<region_t>::iterator finish = reg.end(); - std::vector<region_t>::iterator found; + static bool regionexistsin(std::vector<region_t> const& reg, uint16_t index) { + std::vector<region_t>::const_iterator begin = reg.begin(); + std::vector<region_t>::const_iterator finish = reg.end(); region_t r (index); - if ((found = std::find(begin, finish, r)) != finish) { + if (std::find(begin, finish, r) != finish) { return true; } return false; } - static bool wavexistsin(std::vector<wav_t> wv, uint16_t index) { - std::vector<wav_t>::iterator begin = wv.begin(); - std::vector<wav_t>::iterator finish = wv.end(); - std::vector<wav_t>::iterator found; + static bool wavexistsin (std::vector<wav_t> const& wv, uint16_t index) { + std::vector<wav_t>::const_iterator begin = wv.begin(); + std::vector<wav_t>::const_iterator finish = wv.end(); wav_t w (index); - if ((found = std::find(begin, finish, w)) != finish) { + if (std::find(begin, finish, w) != finish) { return true; } return false; } - std::vector<wav_t> audiofiles; - std::vector<region_t> regions; - std::vector<region_t> midiregions; - std::vector<track_t> tracks; - std::vector<track_t> miditracks; + uint8_t version () const { return _version; } + int64_t sessionrate () const { return _sessionrate ; } - std::string path; - unsigned char *ptfunxored; - uint64_t len; - int64_t sessionrate; - uint8_t version; + const std::vector<wav_t>& audiofiles () const { return _audiofiles ; } + const std::vector<region_t>& regions () const { return _regions ; } + const std::vector<region_t>& midiregions () const { return _midiregions ; } + const std::vector<track_t>& tracks () const { return _tracks ; } + const std::vector<track_t>& miditracks () const { return _miditracks ; } + + const unsigned char* unxored_data () const { return _ptfunxored; } + uint64_t unxored_size () const { return _len; } private: - struct block_t; + + std::vector<wav_t> _audiofiles; + std::vector<region_t> _regions; + std::vector<region_t> _midiregions; + std::vector<track_t> _tracks; + std::vector<track_t> _miditracks; + + std::string path; + + unsigned char* _ptfunxored; + uint64_t _len; + int64_t _sessionrate; + uint8_t _version; + uint8_t* _product; + int64_t _targetrate; + float _ratefactor; + bool is_bigendian; struct block_t { uint8_t zmark; // 'Z' @@ -235,13 +249,6 @@ private: }; std::vector<block_t> blocks; - unsigned char c0; - unsigned char c1; - uint8_t *product; - bool is_bigendian; - int64_t targetrate; - float ratefactor; - bool jumpback(uint32_t *currpos, unsigned char *buf, const uint32_t maxoffset, const unsigned char *needle, const uint32_t needlelen); bool jumpto(uint32_t *currpos, unsigned char *buf, const uint32_t maxoffset, const unsigned char *needle, const uint32_t needlelen); bool foundin(std::string haystack, std::string needle); |