Align switch statement with case labels to reduce indentation in EngineDialog
[ardour.git] / libs / ptformat / ptfformat.h
index 0f60dc3335769591ac61fbd2164d425ddf6a9b89..be7076dbfda7d274209c773f9fb945e849a2bf93 100644 (file)
@@ -20,7 +20,9 @@
 #include <vector>
 #include <stdint.h>
 
-class PTFFormat {
+#include "ptformat/visibility.h"
+
+class LIBPTFORMAT_API PTFFormat {
 public:
        PTFFormat();
        ~PTFFormat();
@@ -28,7 +30,7 @@ public:
        /* Return values:       0            success
                                -1           could not open file as ptf
        */
-       int load(std::string path);
+       int load(std::string path, int64_t targetsr);
 
        typedef struct wav {
                std::string filename;
@@ -38,7 +40,8 @@ public:
                int64_t     length;
 
                bool operator ==(const struct wav& other) {
-                       return (this->index == other.index);
+                       return (this->filename == other.filename ||
+                               this->index == other.index);
                }
 
        } wav_t;
@@ -63,7 +66,7 @@ public:
                region_t    reg;
 
                bool operator ==(const struct track& other) {
-                       return (this->index == other.index);
+                       return (this->name == other.name);
                }
        } track_t;
 
@@ -71,25 +74,13 @@ public:
        std::vector<region_t> regions;
        std::vector<track_t> tracks;
 
-       static bool trackexistsin(std::vector<track_t> tr, uint16_t index) {
-               std::vector<track_t>::iterator begin = tr.begin();
-               std::vector<track_t>::iterator finish = tr.end();
-               std::vector<track_t>::iterator found;
-
-               track_t f = { std::string(""), index };
-
-               if ((found = std::find(begin, finish, f)) != finish) {
-                       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;
 
-               region_t r = { std::string(""), index };
+               wav_t w = { std::string(""), 0, 0, 0 };
+               region_t r = { std::string(""), index, 0, 0, 0, w };
 
                if ((found = std::find(begin, finish, r)) != finish) {
                        return true;
@@ -102,7 +93,7 @@ public:
                std::vector<wav_t>::iterator finish = wv.end();
                std::vector<wav_t>::iterator found;
 
-               wav_t w = { std::string(""), index };
+               wav_t w = { std::string(""), index, 0, 0 };
 
                if ((found = std::find(begin, finish, w)) != finish) {
                        return true;
@@ -110,7 +101,8 @@ public:
                return false;
        }
 
-       uint32_t sessionrate;
+       int64_t sessionrate;
+       int64_t targetrate;
        uint8_t version;
 
        unsigned char c0;
@@ -121,10 +113,23 @@ public:
 private:
        bool foundin(std::string haystack, std::string needle);
        void parse(void);
+       void unxor10(void);
+       void setrates(void);
+       void parse5header(void);
+       void parse7header(void);
        void parse8header(void);
        void parse9header(void);
-       void parserest(void);
+       void parse10header(void);
+       void parserest5(void);
+       void parserest89(void);
+       void parserest10(void);
+       void parseaudio5(void);
+       void parseaudio(void);
        std::vector<wav_t> actualwavs;
+       float ratefactor;
+       std::string extension;
+       unsigned char key10a;
+       unsigned char key10b;
 };