Hi, so this is fairly technical... I think. Because admittedly, I don't understand much of what I'm saying myself.

I've been toying with the DLL Object for a while to use on the bass.dll audio library/, as a way to create an icecast/shoutcast client. I'm definitely not a developer and have extremely limited knowledge of how all of this works from a developer perspective.

Despite these limitations and my lack of understanding of actual development concepts, I've got interesting results: I've got my Fusion app to make the DLL decode the stream and play the music, and I was able to get the stream's metadata to be passed as a string to DLL Object for it to be parsed and displayed in my app.

The problem is, my way to read the metadata is kinda crude at the moment: basically I'm asking for the metadatas by sending a simple command to the DLL (BASS_ChannelGetTags) every two seconds. It works, but it's a hack.

The DLL apparently has all that's needed to make it possible to get the exactly tags when they're received in the stream. The doc talks about a ChannelSetSync command that receives a so-called callback function as a parameter, which would apparently be SYNCPROC, and apparently it would allow my app to be informed in real time when new metadata has arrived, but I'm not even sure I understand what a callback function is, and what it means for DLL Object and Fusion.

I don't understand how I'm supposed to make those two functions interacts in CF2.5 terms. And even if I did, and the DLL started to behave properly, I don't understand how I would check for the "sync" to have been received. There are examples online in various language but I don't understand how they translate into CF25's Event Editor/DLLObject pseudocode.

In other words, I'm trying to make a pseudoevent in CF25 in the form of "has a sync been received", but I simply don't get how I'm supposed to do it with DLL Object.

Any thoughts on this?