check_checksums/
check_checksums.rs1use ot_tools_io::{
6 ArrangementFile, BankFile, HasChecksumField, OctatrackFileIO, OtToolsIoError,
7 SampleSettingsFile,
8};
9use std::path::PathBuf;
10
11#[allow(dead_code)]
12fn arrangement_check() -> Result<(), OtToolsIoError> {
13 let fp = PathBuf::from("test-data")
14 .join("arrange")
15 .join("full-options.work");
16 let bin = ArrangementFile::from_data_file(&fp)?;
17 println!("checksum from arrangement file: {:?}", bin.checksum);
18
19 let checksum = bin.calculate_checksum()?;
20 println!("calculated checksum for arrangement file: {checksum:?}");
21
22 if bin.check_checksum()? {
23 println!("arrangement file checksum is ok");
24 } else {
25 println!("bad arrangement file checksum");
26 panic!()
27 };
28 Ok(())
29}
30
31fn bank_check() -> Result<(), OtToolsIoError> {
32 let fp = PathBuf::from("test-data")
33 .join("blank-project")
34 .join("bank01.work");
35 let bin = BankFile::from_data_file(&fp)?;
36 println!("checksum from bank file: {:?}", bin.checksum);
37
38 let checksum = bin.calculate_checksum()?;
39 println!("calculated checksum for bank file: {checksum:?}");
40
41 if bin.check_checksum()? {
42 println!("bank file checksum is ok");
43 } else {
44 println!("bad bank file checksum");
45 panic!()
46 };
47 Ok(())
48}
49
50fn markers_check() -> Result<(), OtToolsIoError> {
51 let fp = PathBuf::from("test-data")
52 .join("blank-project")
53 .join("markers.work");
54 let bin = ArrangementFile::from_data_file(&fp)?;
55 println!("checksum from markers file: {:?}", bin.checksum);
56
57 let checksum = bin.calculate_checksum()?;
58 println!("calculated checksum for markers file: {checksum:?}");
59
60 if bin.check_checksum()? {
61 println!("markers file checksum is ok");
62 } else {
63 println!("bad markers file checksum");
64 panic!()
65 };
66
67 Ok(())
68}
69
70fn sample_check() -> Result<(), OtToolsIoError> {
71 let fp = PathBuf::from("test-data").join("samples").join("sample.ot");
72 let bin = SampleSettingsFile::from_data_file(&fp)?;
73 println!("checksum from sample settings file: {:?}", bin.checksum);
74
75 let checksum = bin.calculate_checksum()?;
76 println!("calculated checksum for sample settings file: {checksum:?}");
77
78 if bin.check_checksum()? {
79 println!("sample settings file checksum is ok");
80 } else {
81 println!("bad sample settings file checksum");
82 panic!()
83 };
84 Ok(())
85}
86
87fn main() -> Result<(), OtToolsIoError> {
88 println!("-------------------------");
89 bank_check()?;
94 println!("-------------------------");
95 markers_check()?;
96 println!("-------------------------");
97 sample_check()?;
98 println!("-------------------------");
99 Ok(())
100}