Commit c03170a9 authored by Davide Beatrici's avatar Davide Beatrici Committed by Alexandre Julliard

wineoss: Add get_prop_value stub in unixlib.

parent 62b5ee8b
...@@ -1478,6 +1478,15 @@ static NTSTATUS oss_is_started(void *args) ...@@ -1478,6 +1478,15 @@ static NTSTATUS oss_is_started(void *args)
return oss_unlock_result(stream, &params->result, stream->playing ? S_OK : S_FALSE); return oss_unlock_result(stream, &params->result, stream->playing ? S_OK : S_FALSE);
} }
static NTSTATUS oss_get_prop_value(void *args)
{
struct get_prop_value_params *params = args;
params->result = E_NOTIMPL;
return STATUS_SUCCESS;
}
/* Aux driver */ /* Aux driver */
static unsigned int num_aux; static unsigned int num_aux;
...@@ -1724,7 +1733,7 @@ unixlib_entry_t __wine_unix_call_funcs[] = ...@@ -1724,7 +1733,7 @@ unixlib_entry_t __wine_unix_call_funcs[] =
oss_set_event_handle, oss_set_event_handle,
oss_test_connect, oss_test_connect,
oss_is_started, oss_is_started,
oss_not_implemented, oss_get_prop_value,
oss_not_implemented, oss_not_implemented,
oss_midi_release, oss_midi_release,
oss_midi_out_message, oss_midi_out_message,
...@@ -2109,6 +2118,62 @@ static NTSTATUS oss_wow64_set_event_handle(void *args) ...@@ -2109,6 +2118,62 @@ static NTSTATUS oss_wow64_set_event_handle(void *args)
return STATUS_SUCCESS; return STATUS_SUCCESS;
} }
static NTSTATUS oss_wow64_get_prop_value(void *args)
{
struct propvariant32
{
WORD vt;
WORD pad1, pad2, pad3;
union
{
ULONG ulVal;
PTR32 ptr;
ULARGE_INTEGER uhVal;
};
} *value32;
struct
{
PTR32 device;
EDataFlow flow;
PTR32 guid;
PTR32 prop;
HRESULT result;
PTR32 value;
PTR32 buffer; /* caller allocated buffer to hold value's strings */
PTR32 buffer_size;
} *params32 = args;
PROPVARIANT value;
struct get_prop_value_params params =
{
.device = ULongToPtr(params32->device),
.flow = params32->flow,
.guid = ULongToPtr(params32->guid),
.prop = ULongToPtr(params32->prop),
.value = &value,
.buffer = ULongToPtr(params32->buffer),
.buffer_size = ULongToPtr(params32->buffer_size)
};
oss_get_prop_value(&params);
params32->result = params.result;
if (SUCCEEDED(params.result))
{
value32 = UlongToPtr(params32->value);
value32->vt = value.vt;
switch (value.vt)
{
case VT_UI4:
value32->ulVal = value.ulVal;
break;
case VT_LPWSTR:
value32->ptr = params32->buffer;
break;
default:
FIXME("Unhandled vt %04x\n", value.vt);
}
}
return STATUS_SUCCESS;
}
static NTSTATUS oss_wow64_aux_message(void *args) static NTSTATUS oss_wow64_aux_message(void *args)
{ {
struct struct
...@@ -2161,7 +2226,7 @@ unixlib_entry_t __wine_unix_call_wow64_funcs[] = ...@@ -2161,7 +2226,7 @@ unixlib_entry_t __wine_unix_call_wow64_funcs[] =
oss_wow64_set_event_handle, oss_wow64_set_event_handle,
oss_wow64_test_connect, oss_wow64_test_connect,
oss_is_started, oss_is_started,
oss_not_implemented, oss_wow64_get_prop_value,
oss_not_implemented, oss_not_implemented,
oss_midi_release, oss_midi_release,
oss_wow64_midi_out_message, oss_wow64_midi_out_message,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment