From b722a3342ba4d4ed458c40eb9c5d859cf058429b Mon Sep 17 00:00:00 2001 From: Damien Zammit Date: Wed, 5 Aug 2015 03:23:12 +1000 Subject: Added PT9 and PT9HD session compatibility Signed-off-by: Damien Zammit --- ptfformat.cc | 64 ++++++++++++++++++++++-------------------------------------- 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 actualwavs; - enum samplerates { - SR44100 = 1, - SR48000, - SR88200, - SR96000, - SR176400, - SR192000 - }; }; -- cgit v1.2.3