39{
40 File file(_filename);
41 char buf[160];
42
43 int idv2 = 0;
44 int ape = 0;
45 int idv1 = 0;
46
47
48
49 size_t n = file.read(buf, 32);
50 if (n == 32) {
51 if (memcmp(buf, "ID3", 3) == 0) {
52 idv2 = buf[3];
53 }
54 else if (memcmp(buf, "APETAGEX", 8) == 0) {
55 ape = APEv2::word(&buf[8]) / 1000;
56 }
57 }
58
59
61 n = file.read(buf, 160);
62 if (n == 160) {
63 if (ape == 0) {
64 if (memcmp(buf, "APETAGEX", 8) == 0) {
65 ape = APEv2::word(&buf[8]) / 1000;
66 }
67 else if (memcmp(&buf[128], "APETAGEX", 8) == 0) {
68 ape = APEv2::word(&buf[128 + 8]) / 1000;
69 }
70 }
71
72 if (memcmp(&buf[32], "TAG", 3) == 0) {
73 idv1 = 1;
74 }
75 }
76
77 switch (idv2) {
78 case 2:
80 break;
81 case 3 :
83 break;
84 case 4 :
86 }
87
88 switch (ape) {
89 case 1:
91 break;
92 case 2:
94 }
95
96 if (idv1 == 1) {
98 }
99}