diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2010-02-10 22:15:04 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2010-02-10 22:15:04 +0000 |
commit | be9a75a8e6d3c153b6250198f6838c5282745871 (patch) | |
tree | 16e54d497759117961925287440b4cd9c36782f4 /tools/omf/omftool.h | |
parent | cd0e83e01075cf986a4986a08e07ab580d65b22f (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.h | 29 |
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) { |