Skip to content

Commit 2fed423

Browse files
lovek323wez
authored andcommitted
feat(tags): add classical tags
1 parent 8fec7e7 commit 2fed423

File tree

1 file changed

+74
-0
lines changed

1 file changed

+74
-0
lines changed

src/main.cpp

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,12 @@
133133

134134
#define Meta_ID3v2Tag 0xBC
135135

136+
#define Meta_movementCount 0xE0
137+
#define Meta_movementName 0xE1
138+
#define Meta_movementNumber 0xE2
139+
#define Meta_showWorkMovement 0xE3
140+
#define Meta_work 0xE4
141+
136142
char *output_file;
137143

138144
int total_args;
@@ -1577,6 +1583,11 @@ int real_main(int argc, char *argv[]) {
15771583
{"ID3Tag", required_argument, NULL, Meta_ID3v2Tag},
15781584

15791585
{"DeepScan", 0, &extr, 1},
1586+
{"movementCount", required_argument, NULL, Meta_movementCount},
1587+
{"movementName", required_argument, NULL, Meta_movementName},
1588+
{"movementNumber", required_argument, NULL, Meta_movementNumber},
1589+
{"showWorkMovement", required_argument, NULL, Meta_showWorkMovement},
1590+
{"work", required_argument, NULL, Meta_work},
15801591

15811592
{0, 0, 0, 0}
15821593
};
@@ -4252,6 +4263,69 @@ int real_main(int argc, char *argv[]) {
42524263
break;
42534264
}
42544265

4266+
case Meta_movementCount: {
4267+
APar_ScanAtoms(ISObasemediafile);
4268+
if (!APar_assert(metadata_style == ITUNES_STYLE, 1, "movementCount")) {
4269+
break;
4270+
}
4271+
uint8_t data_value = 0;
4272+
sscanf(optarg, "%" SCNu8, &data_value);
4273+
AtomicInfo *atom = APar_MetaData_atom_Init(
4274+
"moov.udta.meta.ilst.\251mvc.data", optarg, AtomFlags_Data_UInt);
4275+
APar_Unified_atom_Put(
4276+
atom, NULL, UTF8_iTunesStyle_256glyphLimited, data_value, 8);
4277+
break;
4278+
}
4279+
4280+
case Meta_movementName: {
4281+
APar_ScanAtoms(ISObasemediafile);
4282+
if (!APar_assert(metadata_style == ITUNES_STYLE, 1, "movementName")) {
4283+
break;
4284+
}
4285+
AtomicInfo *atom = APar_MetaData_atom_Init(
4286+
"moov.udta.meta.ilst.\251mvn.data", optarg, AtomFlags_Data_Text);
4287+
APar_Unified_atom_Put(
4288+
atom, optarg, UTF8_iTunesStyle_256glyphLimited, 0, 0);
4289+
break;
4290+
}
4291+
4292+
case Meta_movementNumber: {
4293+
APar_ScanAtoms(ISObasemediafile);
4294+
if (!APar_assert(metadata_style == ITUNES_STYLE, 1, "movementNumber")) {
4295+
break;
4296+
}
4297+
uint8_t data_value = 0;
4298+
sscanf(optarg, "%" SCNu8, &data_value);
4299+
AtomicInfo *atom = APar_MetaData_atom_Init(
4300+
"moov.udta.meta.ilst.\251mvi.data", optarg, AtomFlags_Data_UInt);
4301+
APar_Unified_atom_Put(
4302+
atom, NULL, UTF8_iTunesStyle_256glyphLimited, data_value, 8);
4303+
break;
4304+
}
4305+
4306+
case Meta_showWorkMovement: {
4307+
APar_ScanAtoms(ISObasemediafile);
4308+
if (!APar_assert(metadata_style == ITUNES_STYLE, 1, "showWorkMovement")) {
4309+
break;
4310+
}
4311+
AtomicInfo *atom = APar_MetaData_atom_Init(
4312+
"moov.udta.meta.ilst.shwm.data", optarg, AtomFlags_Data_Binary);
4313+
APar_Unified_atom_Put(
4314+
atom, optarg, UTF8_iTunesStyle_256glyphLimited, 0, 0);
4315+
break;
4316+
}
4317+
4318+
case Meta_work: {
4319+
APar_ScanAtoms(ISObasemediafile);
4320+
if (!APar_assert(metadata_style == ITUNES_STYLE, 1, "work")) {
4321+
break;
4322+
}
4323+
AtomicInfo *atom = APar_MetaData_atom_Init(
4324+
"moov.udta.meta.ilst.\251wrk.data", optarg, AtomFlags_Data_Text);
4325+
APar_Unified_atom_Put(
4326+
atom, optarg, UTF8_iTunesStyle_256glyphLimited, 0, 0);
4327+
break;
4328+
}
42554329
} /* end switch */
42564330
} /* end while */
42574331

0 commit comments

Comments
 (0)