summaryrefslogtreecommitdiff
path: root/tools/omf/omftool.h
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2010-02-10 22:15:04 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2010-02-10 22:15:04 +0000
commitbe9a75a8e6d3c153b6250198f6838c5282745871 (patch)
tree16e54d497759117961925287440b4cd9c36782f4 /tools/omf/omftool.h
parentcd0e83e01075cf986a4986a08e07ab580d65b22f (diff)
get OMF loader into working shape
git-svn-id: svn://localhost/ardour2/branches/3.0@6673 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'tools/omf/omftool.h')
-rw-r--r--tools/omf/omftool.h29
1 files changed, 22 insertions, 7 deletions
diff --git a/tools/omf/omftool.h b/tools/omf/omftool.h
index 1d93f47989..b6e291ca58 100644
--- a/tools/omf/omftool.h
+++ b/tools/omf/omftool.h
@@ -17,12 +17,22 @@ public:
int init ();
int load (const std::string&);
- void create_xml ();
+ int create_xml ();
void set_version (int);
void set_session_name (const std::string&);
void set_sample_rate (int);
+ struct SourceInfo {
+ int channels;
+ int sample_rate;
+ uint64_t length;
+ XMLNode* node;
+
+ SourceInfo (int chn, int sr, uint64_t l, XMLNode* n)
+ : channels (chn), sample_rate (sr), length (l), node (n) {}
+ };
+
private:
bool bigEndian;
int64_t id_counter;
@@ -32,7 +42,8 @@ private:
std::string base_dir;
std::string session_name;
std::vector<std::string> audiofile_path_vector;
- int sample_rate;
+ int sample_rate; /* audio samples per second */
+ double frame_rate; /* time per video frame */
XMLNode* session;
XMLNode* sources;
XMLNode* routes;
@@ -48,14 +59,18 @@ private:
XMLNode* new_playlist_node ();
XMLNode* new_diskstream_node ();
- typedef std::map<std::string,XMLNode*> KnownSources;
+ typedef std::map<std::string,SourceInfo*> KnownSources;
KnownSources known_sources;
- XMLNode* get_known_source (const char*);
- void add_source (const char*, XMLNode*);
+ SourceInfo* get_known_source (const char*);
char* read_name (size_t offset, size_t length);
- bool get_offset_and_length (const char* offstr, const char* lenstr, uint32_t& offset, uint32_t len);
+ bool get_offset_and_length (const char* offstr, const char* lenstr, uint32_t& offset, uint32_t& len);
void name_types ();
+ void add_id (XMLNode*);
+ void set_route_node_channels (XMLNode* route, int in, int out, bool send_to_master);
+ bool get_audio_info (const std::string& path);
+ void set_region_sources (XMLNode*, SourceInfo*);
+ void legalize_name (std::string&);
uint16_t e16(uint16_t x)
{
@@ -64,7 +79,7 @@ private:
| (x<<8);
else
return x;
- }
+ }
uint32_t e32(uint32_t x)
{