Hi,
i'm currently implement ogg vorbis real time decoder.
For that, i wrote a ToggVorbisStream that extends of TWave.
I overrided Read And Seek methods and decoding and playing sound is ok.
But I was obliged to modify TStockAudioPlayer.GetWaveFormat to get the wave format of my ogg file.
So, Kambiz, I would like change TStockAudioPlayer or descendants so that all that relates to the wave is managed by a TWave or TAbstractWave or an interface for wave objects with methods: ReadWaveData, WriteWaveData, SeekInWave, and LoadWaveFormat, and possibly Open and Close that can be called from MMIOM_OPEN and MMIOM_CLOSE.
Not Read and Write because it oblige to override it, put decoding code on it and write InternalRead, ... to read the real stream (ogg vorbis file).
Obviously, in this case, ReadWaveData will must call directly TWave.Read.
Firstly, I overrided UpdateDetail (i was obliged to put private variables of TWave to protected) but I realized that this method was not used: only TStockAudioPlayer.GetWaveFormat was used.
I hope so we will be able to change it.
Thanks
David