read_project_files/
read_project_files.rs1use ot_tools_io::{
7 ArrangementFile, BankFile, MarkersFile, OctatrackFileIO, OtToolsIoError, ProjectFile,
8};
9use std::path::PathBuf;
10
11#[derive(Debug)]
12#[allow(dead_code)]
13struct Metadata {
14 header: String,
15 datatype_version: u8,
16}
17
18fn main() -> Result<(), OtToolsIoError> {
20 let blank_project_dirpath = PathBuf::from("test-data").join("blank-project");
21
22 let arr_fpath = blank_project_dirpath.join("arr01.work");
23 let bank_fpath = blank_project_dirpath.join("bank01.work");
24 let markers_fpath = blank_project_dirpath.join("markers.work");
25 let project_fpath = blank_project_dirpath.join("project.work");
26
27 let arr = ArrangementFile::from_data_file(&arr_fpath)?;
28 let bank = BankFile::from_data_file(&bank_fpath)?;
29 let markers = MarkersFile::from_data_file(&markers_fpath)?;
30 let project = ProjectFile::from_data_file(&project_fpath)?;
31
32 let arr_meta = Metadata {
33 header: String::from_utf8_lossy(&arr.header)
34 .to_string()
35 .replace("\0", "."),
36 datatype_version: arr.datatype_version,
37 };
38
39 let bank_meta = Metadata {
40 header: String::from_utf8_lossy(&bank.header)
41 .to_string()
42 .replace("\0", "."),
43 datatype_version: bank.datatype_version,
44 };
45
46 let markers_meta = Metadata {
47 header: String::from_utf8_lossy(&markers.header)
48 .to_string()
49 .replace("\0", "."),
50 datatype_version: markers.datatype_version,
51 };
52
53 println!("===================================");
54 println!("| Printing example files metadata |");
55 println!("===================================");
56 println!();
57 println!("project: {:#?}", project.metadata);
58 println!();
59 println!("arrangement: {arr_meta:#?}");
60 println!();
61 println!("bank: {bank_meta:#?}");
62 println!();
63 println!("markers: {markers_meta:#?}");
64 Ok(())
65}