amstream: Implement AMAudioData::GetInfo.
Signed-off-by: Anton Baskanov <baskanov@gmail.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
4a0db15622
commit
6010ebb22f
|
@ -30,6 +30,9 @@ WINE_DEFAULT_DEBUG_CHANNEL(amstream);
|
|||
typedef struct {
|
||||
IAudioData IAudioData_iface;
|
||||
LONG ref;
|
||||
DWORD size;
|
||||
BYTE *data;
|
||||
DWORD actual_data;
|
||||
} AMAudioDataImpl;
|
||||
|
||||
static inline AMAudioDataImpl *impl_from_IAudioData(IAudioData *iface)
|
||||
|
@ -87,9 +90,29 @@ static HRESULT WINAPI IAudioDataImpl_SetBuffer(IAudioData* iface, DWORD size, BY
|
|||
|
||||
static HRESULT WINAPI IAudioDataImpl_GetInfo(IAudioData* iface, DWORD *length, BYTE **data, DWORD *actual_data)
|
||||
{
|
||||
FIXME("(%p)->(%p,%p,%p): stub\n", iface, length, data, actual_data);
|
||||
AMAudioDataImpl *This = impl_from_IAudioData(iface);
|
||||
|
||||
return E_NOTIMPL;
|
||||
TRACE("(%p)->(%p,%p,%p)\n", iface, length, data, actual_data);
|
||||
|
||||
if (!This->data)
|
||||
{
|
||||
return MS_E_NOTINIT;
|
||||
}
|
||||
|
||||
if (length)
|
||||
{
|
||||
*length = This->size;
|
||||
}
|
||||
if (data)
|
||||
{
|
||||
*data = This->data;
|
||||
}
|
||||
if (actual_data)
|
||||
{
|
||||
*actual_data = This->actual_data;
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI IAudioDataImpl_SetActual(IAudioData* iface, DWORD data_valid)
|
||||
|
|
|
@ -626,6 +626,30 @@ static void test_audiodata_query_interface(void)
|
|||
IUnknown_Release(unknown);
|
||||
}
|
||||
|
||||
static void test_audiodata_get_info(void)
|
||||
{
|
||||
IUnknown *unknown = create_audio_data();
|
||||
IAudioData *audio_data = NULL;
|
||||
|
||||
HRESULT result;
|
||||
|
||||
result = IUnknown_QueryInterface(unknown, &IID_IAudioData, (void **)&audio_data);
|
||||
if (FAILED(result))
|
||||
{
|
||||
/* test_audiodata_query_interface handles this case */
|
||||
skip("No IAudioData\n");
|
||||
goto out_unknown;
|
||||
}
|
||||
|
||||
result = IAudioData_GetInfo(audio_data, NULL, NULL, NULL);
|
||||
ok(MS_E_NOTINIT == result, "got 0x%08x\n", result);
|
||||
|
||||
IAudioData_Release(audio_data);
|
||||
|
||||
out_unknown:
|
||||
IUnknown_Release(unknown);
|
||||
}
|
||||
|
||||
START_TEST(amstream)
|
||||
{
|
||||
HANDLE file;
|
||||
|
@ -645,6 +669,7 @@ START_TEST(amstream)
|
|||
}
|
||||
|
||||
test_audiodata_query_interface();
|
||||
test_audiodata_get_info();
|
||||
|
||||
CoUninitialize();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue