wineqtdecoder: Implement a stub for DataHPlaybackHints64.

This commit is contained in:
Aric Stewart 2012-05-18 09:25:17 -05:00 committed by Alexandre Julliard
parent 4948d343df
commit 6c51c1ba13
1 changed files with 29 additions and 2 deletions

View File

@ -406,6 +406,22 @@ static pascal ComponentResult myDataHPlaybackHints(DataHandler dh, long flags,
return noErr;
}
static pascal ComponentResult myDataHPlaybackHints64(DataHandler dh, long flags,
wide *minFileOffset, wide *maxFileOffset,
long bytesPerSecond)
{
if (TRACE_ON(qtdatahandler))
{
SInt64 minFileOffset64 = WideToSInt64(*minFileOffset);
LONGLONG minFileOffsetLL = minFileOffset64;
SInt64 maxFileOffset64 = WideToSInt64(*maxFileOffset);
LONGLONG maxFileOffsetLL = maxFileOffset64;
TRACE("%s %s %li\n",wine_dbgstr_longlong(minFileOffsetLL), wine_dbgstr_longlong(maxFileOffsetLL), bytesPerSecond);
}
return noErr;
}
static pascal ComponentResult myDataHGetFileSize64(DataHandler dh, wide * fileSize)
{
Handle storage = GetComponentInstanceStorage(dh);
@ -480,7 +496,7 @@ static pascal ComponentResult myDataHScheduleData64( DataHandler dh,
LONGLONG offset = fileOffset64;
BYTE* buffer = (BYTE*)PlaceToPutDataPtr;
TRACE("%p %p %lli %li %li %p %p\n",dh, PlaceToPutDataPtr, offset, DataSize, RefCon, scheduleRec, CompletionRtn);
TRACE("%p %p %s %li %li %p %p\n",dh, PlaceToPutDataPtr, wine_dbgstr_longlong(offset), DataSize, RefCon, scheduleRec, CompletionRtn);
hr = IAsyncReader_SyncRead(data->dataRef.pReader, offset, DataSize, buffer);
TRACE("result %x\n",hr);
@ -685,7 +701,14 @@ static const struct { LPVOID proc; ProcInfoType type;} componentFunctions_2[] =
| STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(unsigned long)))
| STACK_ROUTINE_PARAMETER(5, SIZE_CODE(sizeof(long)))
}, /* kDataHPlaybackHintsSelect 0x103 */
{NULL, 0}, /* kDataHPlaybackHints64Select 0x10E */
{myDataHPlaybackHints64, kPascalStackBased
| RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
| STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(DataHandler)))
| STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(long)))
| STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(wide*)))
| STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(wide*)))
| STACK_ROUTINE_PARAMETER(5, SIZE_CODE(sizeof(long)))
}, /* kDataHPlaybackHints64Select 0x10E */
{NULL, 0}, /* kDataHGetDataRateSelect 0x110 */
{NULL, 0}, /* kDataHSetTimeHintsSelect 0x111 */
};
@ -726,6 +749,8 @@ static pascal ComponentResult myComponentCanDo(ComponentInstance ci, SInt16 ftnN
return TRUE;
if (ftnNumber == kDataHPlaybackHintsSelect)
return TRUE;
if (ftnNumber == kDataHPlaybackHints64Select)
return TRUE;
if (ftnNumber > kDataHGetDataAvailability64Select)
return FALSE;
TRACE("impl? %i\n",(componentFunctions[ftnNumber].proc != NULL));
@ -758,6 +783,8 @@ static pascal ComponentResult myComponentRoutineProc ( ComponentParameters * cp,
return callOurFunction(myComponentCanDo, uppCallComponentCanDoProcInfo, cp);
case kDataHPlaybackHintsSelect:
return callOurFunction(componentFunctions_2[0].proc, componentFunctions_2[0].type, cp);
case kDataHPlaybackHints64Select:
return callOurFunction(componentFunctions_2[1].proc, componentFunctions_2[1].type, cp);
}
if (cp->what > 0 && cp->what <=kDataHGetDataAvailability64Select && componentFunctions[cp->what].proc)