def close
return if @file.nil?
if @tag1 != @tag_orig
@tag_orig.update(@tag1)
@file.reopen(@filename, 'rb+')
@file.seek(-TAGSIZE, File::SEEK_END)
t = @file.read(3)
if t != 'TAG'
@file.seek(0, File::SEEK_END)
@file.write('TAG')
end
str = [
@tag_orig["title"]||"",
@tag_orig["artist"]||"",
@tag_orig["album"]||"",
((@tag_orig["year"] != 0) ? ("%04d" % @tag_orig["year"]) : "\0\0\0\0"),
@tag_orig["comments"]||"",
0,
@tag_orig["tracknum"]||0,
@tag_orig["genre"]||255
].pack("Z30Z30Z30Z4Z28CCC")
@file.write(str)
end
@file.close
@file = nil
end