|
133 | 133 |
|
134 | 134 | #define Meta_ID3v2Tag 0xBC
|
135 | 135 |
|
| 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 | + |
136 | 142 | char *output_file;
|
137 | 143 |
|
138 | 144 | int total_args;
|
@@ -1577,6 +1583,11 @@ int real_main(int argc, char *argv[]) {
|
1577 | 1583 | {"ID3Tag", required_argument, NULL, Meta_ID3v2Tag},
|
1578 | 1584 |
|
1579 | 1585 | {"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}, |
1580 | 1591 |
|
1581 | 1592 | {0, 0, 0, 0}
|
1582 | 1593 | };
|
@@ -4252,6 +4263,69 @@ int real_main(int argc, char *argv[]) {
|
4252 | 4263 | break;
|
4253 | 4264 | }
|
4254 | 4265 |
|
| 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 | + } |
4255 | 4329 | } /* end switch */
|
4256 | 4330 | } /* end while */
|
4257 | 4331 |
|
|
0 commit comments