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 {
|
typedef struct {
|
||||||
IAudioData IAudioData_iface;
|
IAudioData IAudioData_iface;
|
||||||
LONG ref;
|
LONG ref;
|
||||||
|
DWORD size;
|
||||||
|
BYTE *data;
|
||||||
|
DWORD actual_data;
|
||||||
} AMAudioDataImpl;
|
} AMAudioDataImpl;
|
||||||
|
|
||||||
static inline AMAudioDataImpl *impl_from_IAudioData(IAudioData *iface)
|
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)
|
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)
|
static HRESULT WINAPI IAudioDataImpl_SetActual(IAudioData* iface, DWORD data_valid)
|
||||||
|
|
|
@ -626,6 +626,30 @@ static void test_audiodata_query_interface(void)
|
||||||
IUnknown_Release(unknown);
|
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)
|
START_TEST(amstream)
|
||||||
{
|
{
|
||||||
HANDLE file;
|
HANDLE file;
|
||||||
|
@ -645,6 +669,7 @@ START_TEST(amstream)
|
||||||
}
|
}
|
||||||
|
|
||||||
test_audiodata_query_interface();
|
test_audiodata_query_interface();
|
||||||
|
test_audiodata_get_info();
|
||||||
|
|
||||||
CoUninitialize();
|
CoUninitialize();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue