We can store user-defined values in metadata, but getting it is quite difficult.
For instance, I'm working right now on a function, that gets all metadata of the current project.
This is easy to with most of the tags but not with user-defined ones, unless you know their names.
For instance, this works fine, as it's not user-defined metadata:
Code:
A,B=reaper.GetSetProjectInfo_String(0, "RENDER_METADATA", "VORBIS:REAPER", false)
However, this one only works, if you know, that there's user-defined-metadata with the keyname of "Vorbis User Defined1":
Code:
A,B=reaper.GetSetProjectInfo_String(0, "RENDER_METADATA", "VORBIS:USER:Vorbis User Defined1", false)
If you don't know the keynames of the individual user-defined metadata, you can not get all of them.
So, I think, we need a way to enumerate them somehow. Maybe this way:
Code:
A,B=reaper.GetSetProjectInfo_String(0, "RENDER_METADATA", "VORBIS:USER_ENUM:$id", false)
where VORBIS:USER_ENUM signals that I want to enumerate the keynames and $id the number of it.
This goes basically for all metadata-elements that allow user-defined ones, like APE, ID3, IXML, VORBIS.
That way, we don't need to ask the user to submit the keynames to user-defined metadata-values.