25 static const GUID IID_IDirectMusicInstrumentPRIVATE = { 0xbcb20080, 0xa40c, 0x11d1, { 0x86, 0xbc, 0x00, 0xc0, 0x4f, 0xbf, 0x8f, 0xef } };
46 FIXME(
"*sigh*... requested private/unspecified interface\n");
63 TRACE(
"(%p)->(): new ref = %u\n", iface,
ref);
73 TRACE(
"(%p)->(): new ref = %u\n", iface,
ref);
80 for (
i = 0;
i <
This->nb_articulations;
i++)
106 TRACE(
"(%p)->(%d): stub\n",
This, dwPatch);
128 if (
NULL == dminst) {
150 TRACE(
"IStream_Read failed: %08x\n",
hr);
153 if (bytes_read <
size) {
154 TRACE(
"Didn't read full chunk: %u < %u\n", bytes_read,
size);
164 TRACE(
"Apparent mismatch in chunk lengths? %u bytes remaining, %u bytes read\n",
len,
bytes);
179 WARN(
"IStream_Seek failed: %08x\n",
ret);
202 TRACE(
"RGNH chunk (region header): %u bytes\n",
chunk.dwSize);
212 TRACE(
"WSMP chunk (wave sample): %u bytes\n",
chunk.dwSize);
230 TRACE(
"WLNK chunk (wave link): %u bytes\n",
chunk.dwSize);
259 if (!
This->articulations)
263 if (!
This->articulations)
266 articulation = &
This->articulations[
This->nb_articulations];
285 This->nb_articulations++;
304 hr = IStream_Seek(
stream,
This->liInstrumentPosition, STREAM_SEEK_SET,
NULL);
307 WARN(
"IStream_Seek failed: %08x\n",
hr);
339 TRACE(
"LIST chunk: %u bytes\n",
chunk.dwSize);
350 TRACE(
"LRGN chunk (regions list): %u bytes\n",
size);
370 TRACE(
"RGN chunk (region): %u bytes\n",
chunk.dwSize);
386 TRACE(
"LART chunk (articulations list): %u bytes\n",
size);
396 TRACE(
"ART1 chunk (level 1 articulation): %u bytes\n",
chunk.dwSize);
DWORD MIDILOCALE2Patch(const MIDILOCALE *pLocale)
static const IDirectMusicInstrumentVtbl DirectMusicInstrument_Vtbl
static IDirectMusicInstrumentImpl * impl_from_IDirectMusicInstrument(IDirectMusicInstrument *iface)
const char * debugstr_dmguid(const GUID *id)
#define IDirectMusicInstrument_Release(p)
IDirectMusicInstrument IDirectMusicInstrument_iface
#define DMUS_E_UNSUPPORTED_STREAM
void Patch2MIDILOCALE(DWORD dwPatch, LPMIDILOCALE pLocale)
static HRESULT WINAPI IDirectMusicInstrumentImpl_SetPatch(LPDIRECTMUSICINSTRUMENT iface, DWORD dwPatch)
static void DMUSIC_UnlockModule(void)
HRESULT DMUSIC_CreateDirectMusicInstrumentImpl(LPCGUID lpcGUID, LPVOID *ppobj, LPUNKNOWN pUnkOuter)
static unsigned char bytes[4]
static HRESULT advance_stream(IStream *stream, ULONG bytes)
GLenum GLuint GLenum GLsizei length
static const char * debugstr_fourcc(DWORD fourcc)
static ULONG WINAPI IDirectMusicInstrumentImpl_Release(LPDIRECTMUSICINSTRUMENT iface)
static void DMUSIC_LockModule(void)
static HRESULT WINAPI IDirectMusicInstrumentImpl_GetPatch(LPDIRECTMUSICINSTRUMENT iface, DWORD *pdwPatch)
#define IDirectMusicInstrument_QueryInterface(p, a, b)
static const GUID IID_IDirectMusicInstrumentPRIVATE
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
struct IDirectMusicInstrument * LPDIRECTMUSICINSTRUMENT
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
static HRESULT load_region(IDirectMusicInstrumentImpl *This, IStream *stream, instrument_region *region, ULONG length)
static DWORD subtract_bytes(DWORD len, DWORD bytes)
#define IDirectMusicInstrument_AddRef(p)
#define InterlockedDecrement
static HRESULT WINAPI IDirectMusicInstrumentImpl_QueryInterface(LPDIRECTMUSICINSTRUMENT iface, REFIID riid, LPVOID *ret_iface)
CONNECTIONLIST connections_list
#define InterlockedIncrement
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
static HRESULT load_articulation(IDirectMusicInstrumentImpl *This, IStream *stream, ULONG length)
static __inline const char * wine_dbgstr_longlong(ULONGLONG ll)
static ULONG WINAPI IDirectMusicInstrumentImpl_AddRef(LPDIRECTMUSICINSTRUMENT iface)
HRESULT IDirectMusicInstrumentImpl_CustomLoad(IDirectMusicInstrument *iface, IStream *stream)
WINE_DEFAULT_DEBUG_CHANNEL(dmusic)
#define HeapFree(x, y, z)
#define IsEqualIID(riid1, riid2)
static HRESULT read_from_stream(IStream *stream, void *data, ULONG size)