diff options
author | Damien Zammit <damien@zamaudio.com> | 2015-08-05 03:23:12 +1000 |
---|---|---|
committer | Damien Zammit <damien@zamaudio.com> | 2015-08-05 03:23:12 +1000 |
commit | b722a3342ba4d4ed458c40eb9c5d859cf058429b (patch) | |
tree | 506ff5c70fa6c9912506ca9ab0dcc865c2193b68 | |
parent | e8785fac8423cd51dfee7e2af12106350b8dc34d (diff) |
Added PT9 and PT9HD session compatibility
Signed-off-by: Damien Zammit <damien@zamaudio.com>
-rw-r--r-- | ptfformat.cc | 64 | ||||
-rw-r--r-- | ptfformat.h | 13 |
2 files changed, 26 insertions, 51 deletions
diff --git a/ptfformat.cc b/ptfformat.cc index 2da6de3..5163ad0 100644 --- a/ptfformat.cc +++ b/ptfformat.cc @@ -209,23 +209,20 @@ PTFFormat::parse(void) { this->version = ptfunxored[61]; if (this->version == 8) { - parse8(); + parse8header(); + parserest(); } else if (this->version == 9) { - parse8(); + parse9header(); + parserest(); } else { // Should not occur } } void -PTFFormat::parse9(void) -{ -/* - int i; - int j; - int l; -*/ +PTFFormat::parse8header(void) { int k; + // Find session sample rate k = 0; while (k < len) { @@ -235,51 +232,36 @@ PTFFormat::parse9(void) } k++; } - this->sessionrate = ptfunxored[k+11]; - switch (this->sessionrate) { - case SR44100: - this->sessionrate = 44100; - break; - case SR48000: - this->sessionrate = 48000; - break; - case SR88200: - this->sessionrate = 88200; - break; - case SR96000: - this->sessionrate = 96000; - break; - case SR176400: - this->sessionrate = 176400; - break; - case SR192000: - this->sessionrate = 192000; - break; - default: - this->sessionrate = 0; - break; - } + this->sessionrate = 0; + this->sessionrate |= ptfunxored[k+11]; + this->sessionrate |= ptfunxored[k+12] << 8; + this->sessionrate |= ptfunxored[k+13] << 16; } - void -PTFFormat::parse8(void) { - int i; - int j; +PTFFormat::parse9header(void) +{ int k; - int l; + // Find session sample rate - k = 0; + k = 0x100; while (k < len) { if ( (ptfunxored[k ] == 0x5a) && - (ptfunxored[k+1] == 0x05)) { + (ptfunxored[k+1] == 0x06)) { break; } k++; } + this->sessionrate = 0; this->sessionrate |= ptfunxored[k+11]; this->sessionrate |= ptfunxored[k+12] << 8; this->sessionrate |= ptfunxored[k+13] << 16; +} + +void +PTFFormat::parserest(void) +{ + int i,j,k,l; // Find end of wav file list while (k < len) { @@ -325,7 +307,7 @@ PTFFormat::parse8(void) { numberofwavs |= (uint32_t)(ptfunxored[j-3] << 16); numberofwavs |= (uint32_t)(ptfunxored[j-4] << 8); numberofwavs |= (uint32_t)(ptfunxored[j-5]); - printf("%d wavs\n", numberofwavs); + //printf("%d wavs\n", numberofwavs); break; } k--; diff --git a/ptfformat.h b/ptfformat.h index 3b686e3..489853b 100644 --- a/ptfformat.h +++ b/ptfformat.h @@ -1048,17 +1048,10 @@ public: private: bool foundin(std::string haystack, std::string needle); void parse(void); - void parse8(void); - void parse9(void); + void parse8header(void); + void parse9header(void); + void parserest(void); std::vector<wav_t> actualwavs; - enum samplerates { - SR44100 = 1, - SR48000, - SR88200, - SR96000, - SR176400, - SR192000 - }; }; |