View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0006218 | MMW v4 | Framework: Scripts/Extensions | public | 2009-12-15 10:13 | 2012-01-13 14:20 |
Reporter | Ludek | Assigned To | |||
Priority | urgent | Severity | minor | Reproducibility | always |
Status | assigned | Resolution | open | ||
Target Version | 4.1 | ||||
Summary | 0006218: Scripting: Add support of non-standard frames in tags | ||||
Description | Originally suggested in 0006005 to accomplish functionality for a script to write non-standard tags like ACCURATERIP* frames in FLACs files. Also discussed a possible adding of new scripting property OnRippedTrackVerified( AccuRipInfo) where AccuRipInfo would include DiskID, Confidence Number, CRC, etc. as AccurateRip verification results. Some other non-standard tag frames are discussed in 0006211 | ||||
Tags | No tags attached. | ||||
Fixed in build | |||||
related to | 0006211 | closed | Ludek | MM does not read/write to compatible Copyright tag for m4a/mp4 tracks |
related to | 0008970 | feedback | jiri | Suggestion how to add almost unlimited numer of tags/fields with very little DB modifications |
related to | 0011218 | closed | michal | COMMENT ITUNNORM can be read/modified as Comment |
child of | 0006005 | closed | Ludek | AccurateRip for verification of disc rips |
|
The following is a proposal of what could be implemented: On each tag read or write operation an Event would be fired: OnTagRead( TaggedFile) OnTagWrite( TaggedFile) where TaggedFile would be a new object with the following methods and properties: property SD: SDBSongData (info about tagged track) property tagFormat: string (e.g. 'ID3v2.3;ID3v1' or 'WM') property AllFields: SDBStringList (all currently stored fields in the tag) function FieldExists( field: string): boolean; method SetFieldValue( field: string; value: string) function GetFieldValue( field: string; out value: string): boolean; (returns true if the field exists) method SetFieldValues( field: string; values: SDBStringList); (sets multiple values of one field - i.e. its multiple instances in the tag) method GetFieldValues( field: string; out values: SDBStringList); method DeleteField( field: string); Note 1: field name can contain more specifics about a field, e.g. 'COMM' would mean any id3v2 comment field, 'COMM:description:language' could get a particular comment field given its description sub-field and language Note 2: binary support could be added in the future (i.e. any field content could be specified) Note 3: tagFormat property could be writeable in the future in order to support e.g. changing of ID3 versions, etc. Simplified example of usage: Sub TagRead( TaggedFile) If Right( TaggedFile.SD.Path, 4) = ".mp3" Then If TaggedFile.GetFieldValue( "COMM:iTunNORM", value) Then TaggedFile.SD.Leveling = value ' To be parsed somehow EndIf EndIf End Sub |