summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDamien Zammit <damien@zamaudio.com>2015-08-05 03:23:12 +1000
committerDamien Zammit <damien@zamaudio.com>2015-08-05 03:23:12 +1000
commitb722a3342ba4d4ed458c40eb9c5d859cf058429b (patch)
tree506ff5c70fa6c9912506ca9ab0dcc865c2193b68
parente8785fac8423cd51dfee7e2af12106350b8dc34d (diff)
Added PT9 and PT9HD session compatibility
Signed-off-by: Damien Zammit <damien@zamaudio.com>
-rw-r--r--ptfformat.cc64
-rw-r--r--ptfformat.h13
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
- };
};