sig
module Id3v1 :
sig
type tag = {
mutable title : string;
mutable artist : string;
mutable album : string;
mutable year : string;
mutable comment : string;
mutable tracknum : int;
mutable genre : int;
}
val has_tag : string -> bool
val read : string -> Mp3tag.Id3v1.tag
val write : Mp3tag.Id3v1.tag -> string -> unit
val merge : Mp3tag.Id3v1.tag -> Mp3tag.Id3v1.tag -> Mp3tag.Id3v1.tag
val no_tag : Mp3tag.Id3v1.tag
end
module Id3v2 :
sig
type tag = (string * string) list
val read : string -> Mp3tag.Id3v2.tag
val write : Mp3tag.Id3v2.tag -> ?src:string -> string -> unit
val merge : Mp3tag.Id3v2.tag -> Mp3tag.Id3v2.tag -> Mp3tag.Id3v2.tag
val no_tag : Mp3tag.Id3v2.tag
end
val read_both_as_v1 : string -> Mp3tag.Id3v1.tag
val read_both_as_v2 : string -> Mp3tag.Id3v2.tag
val write_both_v1 : Mp3tag.Id3v1.tag -> ?src:string -> string -> unit
val write_both_v2 : Mp3tag.Id3v2.tag -> ?src:string -> string -> unit
val v2_of_v1 : Mp3tag.Id3v1.tag -> Mp3tag.Id3v2.tag
val v1_of_v2 : Mp3tag.Id3v2.tag -> Mp3tag.Id3v1.tag
val string_of_genre : int -> string
val genre_of_string : string -> int
val genres : string list
type channel_mode = Stereo | Joint_stereo | Dual_channel_stereo | Mono
and mp3_encoding = CBR | VBR
and info = {
duration : int;
samplerate : int;
mode : Mp3tag.channel_mode;
bitrate : int;
encoding : Mp3tag.mp3_encoding;
filesize : int;
}
val info : string -> Mp3tag.info
end