View Single Post
Old 06-07-2021, 10:19 AM   #1
Meo-Ada Mespotine
Human being with feelings
Meo-Ada Mespotine's Avatar
Join Date: Apr 2020
Location: Leipzig
Posts: 2,632
Default Done:Api: GetSetProjectInfo_String-Metadata: allow enumerating user-defined key-names

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:

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":

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:

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.
Use you/she/her.Ultraschall-Api Lua Api4Reaper
Off for some time. Bugreports&Docs notes please do here: - Donate, if you wish

Last edited by Meo-Ada Mespotine; 06-11-2021 at 09:03 AM.
Meo-Ada Mespotine is offline   Reply With Quote