============================================================================
	PDZF / Z8X for Windows Ver.2.0.0
	Programed by Y.Taniuchi ( TAN-Y )

	gAPIt@X
============================================================================

ړI

WinFMP + PDZFZ8X ԂPDZF / Z8X̑ꍇɎgp܂B
ʏWinFMP݂̂gpAvɉeoȂ悤ȎdlɂȂĂ܂B


g

WinFMP Ver.0.18 ȍ~ IWINFMP::QueryPDZFZ8XInterface \bh
ǉĂ܂B
̃\bh𗘗p邱Ƃ PDZFZ8XWin ̐C^[tF[Xł
IPDZFZ8X 擾ł܂B
擾Ɏsꍇ PDZFZ8XWin ͎gpł܂B

IPDZFZ8X ̎gp@ PDZFZ8XWin Ver.1.x nύX܂B


\bh

virtual DWORD STDMETHODCALLTYPE GetVersion() = 0;

o[W擾B

    Ȃ
߂l  o[W
        (0xAABBCCCC : AA = Major / BB = Minor(intf change) / CCCC = Minor)

o[W擾܂BPDZFZ8XgAPĨC^[tF[XɕύX
ꍇAABBύXɂȂ܂B݂0x0101????łB
̃o[W̓o[W\[XŎ擾ło[WƑΉĂ܂B
(AA.BB.CC.xxxx)

--------
virtual DWORD STDMETHODCALLTYPE GetExtendPPZ8SequenceMode() = 0;

gV[PX[h擾܂B

    Ȃ
߂l  gV[PX[hB
        EXTPPZ8SEQMODE_`̒萔ɑΉrbgŔf܂B

ݒ肳ĂgV[PX[hݒ肵܂B
SetExtendPPZ8SequenceModeŐݒ肳ꂽl擾܂B
ftHgEXTPPZ8SEQMODE_ALLENABLEłB


--------
virtual HRESULT STDMETHODCALLTYPE SetExtendPPZ8SequenceMode(DWORD dwMode) = 0;

gV[PX[hݒ肵܂B

    dwMode - gV[PX[h
߂l  

gV[PX[hݒ肵܂B
gV[PX̃T|[g͈͂`ꍇɎgp܂B
Z8XPDZF𖳌ɂ邱Ƃł܂BɂĂƁAZ8XPDZF̑Ήf[^
łgV[PXs܂B
ftHgEXTPPZ8SEQMODE_ALLENABLEɐݒ肳Ă܂B


--------
virtual DWORD STDMETHODCALLTYPE GetPlayingExtendPPZ8SequenceStatus() = 0;

݉t̊gV[PX[h擾܂B

    Ȃ
߂l  gV[PX[hB
        EXTPPZ8SEQMODE_`̒萔ɑΉrbgŔf܂B

݉t̃V[PX[h擾܂B
PDZF̃f[^tĂꍇ́AEXTPPZ8SEQMODE_PDZF_ENHANCED̒l擾
܂B


--------
virtual HRESULT STDMETHODCALLTYPE GetPDZFWork(PDZFWORK **ppPDZFWork) = 0;

PDZF̃[N擾B

    ppPDZFWork - [Nւ̃|C^擾
߂l  

[N̓e͌Iɂ͏ȂłB


--------
virtual HRESULT STDMETHODCALLTYPE GetZ8XWork(Z8XWORK **ppZ8XWork) = 0;

Z8X̃[N擾B

    ppZ8XWork - [Nւ̃|C^擾
߂l  

[N̓e͌Iɂ͏ȂłB


--------
virtual HRESULT STDMETHODCALLTYPE RegisterTimerBNotify(
    ITimerBNotify *pRegistNotify,ITimerBNotify **ppOldNotify) = 0;

TimerBCxgo^B

    pRegisterNotify - Vo^CxgC^[tF[X
        ppOldNotify - ȑOo^ĂC^[tF[Xւ̎擾|C^B
                      擾KvȂꍇNULLB
߂l  

TimerBCxgo^܂B
ITimerBNotifyC^[tF[XNX̃|C^ݒ肵ĂB
getpcmdataŃTv擾ہAłuTimerB荞݂v
^C~OOnTimerB\bhĂ΂܂B

ӓ_ƂāA98DOSFMPƈႢAgetpcmdata͉tƔ񓯊ŏĂ
܂igetpcmdatawavef[^擾AwaveĐĂ̂œOł
jB̂߁Ã^C~Oɍ킹ĉ悤AƂĂӖ
ȂłB
̃^C~Oŉt胏[N̍XV܂BẴ^C~O
FMP[N̓e擾ƂAtɓă[N≉tʂɊ
iPDZFZ8XłĂ邱ƂłjƂÂłȂӖ͂ȂƎv܂B

CxgC^[tF[X̓o^͈łBɓȏ̓o^͂ł
B

ITimerBNotify::OnTimerBłA

virtual HRESULT STDMETHODCALLTYPE OnTimerB(
    BOOL blTimerBNotify, Stereo16bit *pSamples, int iSampleCnt) = 0;

blTimerBNotify͍̌ĂяoTimerB荞݁iĵǂ
̃tOłBTRUȄꍇ͔̂Ń[N̍XVNĂ܂BFALSE
ꍇ͊荞݂Ɩ֌WȂ̂Ń[N̍XV͂܂BFALSE͎̊荞݂
OgetpcmdataŎw肵̃TvɒBꍇA܂ł̕
邽߂ɔ܂B
pSamlpes͒OOnTimerBĂяo獡̌Ăяo܂ł̊Ԃ̒̃Tv
|C^ŁAiSampleCnt͂̃TvłB
pSamples͏ʂ̂̂ł̂ŁAɑ΂ĕʂ̉~bNX̂
\łB


