129 lines
3.0 KiB
V
129 lines
3.0 KiB
V
module main
|
|
|
|
import os
|
|
// import io
|
|
import metadata
|
|
|
|
fn id3(){
|
|
// mut audio := os.open("./data/АЛИСА 11000.mp3") or { panic(err) }
|
|
// mut audio := os.open("./data/Глава 2. 16 и 17 июля.mp3") or { panic(err) }
|
|
// mut audio := os.open("./out.mp3") or { panic(err) }
|
|
mut audio := os.open("./data/test_id3v23.mp3") or { panic(err) }
|
|
// mut audio := os.open("./data/01_01.mp3") or { panic(err) }
|
|
// mut audio := os.open("./test.mp3") or { panic(err) }
|
|
|
|
defer {
|
|
audio.close()
|
|
}
|
|
|
|
mut wav := metadata.Audio{}
|
|
wav.detect_tags(mut audio)
|
|
|
|
println(wav.id3v1.embedded)
|
|
println(wav.id3v23.embedded)
|
|
println(wav.id3v24.embedded)
|
|
|
|
if wav.id3v1.embedded {
|
|
last_bytes := metadata.get_bytes(mut audio, -128, 128)
|
|
wav.id3v1.get_metadata(last_bytes)
|
|
|
|
// wav.id3v1.genre = "Rock"
|
|
// wav.id3v1.title = "Test title"
|
|
// wav.id3v1.artist = "Test artist"
|
|
// wav.id3v1.album = "Test albulm"
|
|
// wav.id3v1.comment = "2/5"
|
|
// wav.id3v1.track = "2/5"
|
|
|
|
println(wav.id3v1)
|
|
|
|
}
|
|
|
|
|
|
if wav.id3v23.embedded {
|
|
wav.id3v23.get_full_size(mut audio)
|
|
wav.id3v23.fill_tags(mut audio)
|
|
println(wav.id3v23.to_v1())
|
|
wav.id3v23.tit2.encode_size(3)
|
|
tit2 := wav.id3v23.tit2.get_encoded_frame_tag(3)
|
|
println(tit2)
|
|
println(wav.id3v23)
|
|
}
|
|
|
|
if wav.id3v24.embedded {
|
|
wav.id3v24.get_full_size(mut audio)
|
|
wav.id3v24.fill_tags(mut audio)
|
|
println(wav.id3v24.to_v1())
|
|
// wav.id3v24.tit2.encode_size(4)
|
|
|
|
// flex := wav.id3v24.talb.get_encoded_frame_tag(4)
|
|
|
|
// println(flex)
|
|
|
|
// println(wav.id3v24.tdrc.data)
|
|
// wav.id3v24.tdrc.set_data("2017")
|
|
|
|
// // enc_size := metadata.encode_header_size(wav.id3v24.size, wav.id3v24.version)
|
|
// // println(enc_size)
|
|
// wav.id3v24.tit2.set_data("2017")
|
|
// wav.id3v24.tpe1.init("tpe1")
|
|
// wav.id3v24.tpe1.set_data("Hello")
|
|
// wav.id3v24.tpe2.init("tpe2")
|
|
// wav.id3v24.tpe2.set_data("Hello2")
|
|
// // metadata.encode_header(mut wav.id3v24)
|
|
// // println(wav.id3v24.encoded_header)
|
|
// // println(wav.id3v24.tpe1.name)
|
|
|
|
// wav.id3v24.encode_embed_tags()
|
|
// println(wav.id3v24.encoded_header.len)
|
|
|
|
// wav.id3v24.insert_tags_into_audio(mut audio)
|
|
|
|
// // println(wav.id3v24)
|
|
|
|
// mut f := os.create("./temp.mp3") or { panic(err) }
|
|
|
|
// f.write(wav.id3v24.encoded_header) or { panic(err) }
|
|
// f.close()
|
|
|
|
// println(wav.id3v24)
|
|
// mut audio_2 := os.open("./out.mp3") or { panic(err) }
|
|
|
|
// data := io.read_all(reader: audio_2) or { [u8(0), u8(0), u8(0), u8(0)] }
|
|
// println(data)
|
|
println(wav.id3v24.size)
|
|
println(wav.id3v24.encoded_header)
|
|
}
|
|
|
|
|
|
|
|
// println(wav.id3v23)
|
|
// println(wav.id3v23.tit2)
|
|
|
|
|
|
// converted_idv31 := wav.id3v1.to_v23()
|
|
// println(converted_idv31)
|
|
// println(last_bytes)
|
|
|
|
// flex := wav.id3v1.to_bytes()
|
|
|
|
// audio.seek(-1, os.SeekMode.end) or { panic(err) }
|
|
|
|
// flex1 := audio.tell() or { panic(err) }
|
|
|
|
// mut all_bytes := audio.read_bytes(int(flex1))#[..-128]
|
|
|
|
// all_bytes << flex
|
|
|
|
// println(all_bytes.len)
|
|
// println(int(flex1))
|
|
|
|
// all_bytes := wav.id3v1.insert(mut audio, -128)
|
|
|
|
// os.write_bytes("./test.mp3", new_bytes) or { panic(err) }
|
|
|
|
}
|
|
|
|
fn main(){
|
|
id3()
|
|
}
|