aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Update dependenciesHarald Eilertsen2021-08-211-40/+41
|
* refactor version_chunk parser.Harald Eilertsen2020-12-081-13/+26
| | | | | | Make it explicit what container and object tags we're expecting. Even though we're not using that information, the parser will expect all elements to be in place, and fail if they are not.
* refactor: arch_chunk now takes sub parser as arg.Harald Eilertsen2020-12-071-14/+16
| | | | | The sub parser is applied to the chunk payload, and the returned output is the output of the sub parser.
* Simplify more parser functions using sequence parsers.Harald Eilertsen2020-12-071-56/+31
|
* Use map to convert FOURCC tag to &str.Harald Eilertsen2020-12-071-3/+2
|
* Optimize cmstring parser a bit.Harald Eilertsen2020-12-071-4/+6
| | | | Stop parsing at terminating null instead of searching for it afterwards.
* Begin parsing of Arrangement1 chunk.Harald Eilertsen2020-12-072-1/+43
| | | | | | This is the meat of the file, and the majority of the data. Don't expect this to be trivial, or how much of it I really need to understand. Let's take it slowly and see where it takes us.
* Redo the whole thing again.Harald Eilertsen2020-12-061-224/+95
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Parsing the chunks separately was not a good idea. The file layout seems to be alternating ROOT and ARCH chunks, where the ROOT chunk describes what kind of data to expect in the following ARCH chunk. That is: +------+------+------+ | RIFF | SIZE | NUND | +------+------+------+------+ \ | ROOT | SIZE | NAME | TYPE | | +------+------+------+------+ > One unit | ARCH | SIZE | DATA.... | | +------+------+-------------+ / : : +------+------+------+------+ \ | ROOT | SIZE | NAME | TYPE | | +------+------+------+------+ > Last unit | ARCH | SIZE | DATA.... | | +------+------+-------------+ / EOF The NAME and TYPE are counted (and possibly zero terminated) strings describing the name of the following chunk (e.g. "Version"), and data type (e.g. "PAppVersion") respectively. The order of the chunk pairs does not seem significant, but the pairs are always a ROOT chunk followed by an ARCH chunk.
* Simplify output of node info.Harald Eilertsen2020-11-261-9/+3
| | | | | With the Node Enum, we don't need to unwrap the contents just for s debug printout.
* Don't shadow PAppVersion from cubase_project.rs.Harald Eilertsen2020-11-261-21/+8
|
* Rename NodeType to Node, and give it some data.Harald Eilertsen2020-11-261-33/+22
| | | | | This way I can pass the node name and the mysterious number up to the parent parsers.
* Return NodeValues from ARCH chunks.Harald Eilertsen2020-11-261-14/+24
|
* Get back to where we were.Harald Eilertsen2020-11-261-19/+24
| | | | | | Only, now the root_chunk parser will return the value it has parsed, so it can be used outside of the parser. Not used for anything other than printing the information for now, though.
* A somewhat new start.Harald Eilertsen2020-11-262-39/+97
| | | | | | Split the file into chunks (with their payload) to begin with. This way it will be easier to parse each chunk separately. At least that's the idea. Let's see how it goes.
* Drop no longer needed function.Harald Eilertsen2020-11-251-6/+0
|
* Drop terminating null byte from node value tags.Harald Eilertsen2020-11-251-15/+15
| | | | No longer needed after cmstring strips the null terminator.
* Print the node values we know of yet.Harald Eilertsen2020-11-251-0/+3
|
* Refactor parsing of ARCH chunks and add docs.Harald Eilertsen2020-11-251-16/+38
|
* Discard terminating null-bytes at end of strings.Harald Eilertsen2020-11-241-6/+6
|
* Initial commit.Harald Eilertsen2020-11-234-0/+486
Experimenting with reading Cubase project files using the nom parser library for Rust.