124 *ret_iface = &
This->dmobj.IDirectMusicObject_iface;
126 *ret_iface = &
This->dmobj.IPersistStream_iface;
133 IUnknown_AddRef((
IUnknown*)*ret_iface);
142 TRACE(
"(%p): new ref = %lu\n", iface,
ref);
152 TRACE(
"(%p): new ref = %lu\n", iface,
ref);
194 TRACE(
": returning instrument %p\n",
entry->instrument);
199 TRACE(
": instrument not found\n");
213 if (
index--)
continue;
509 TRACE(
"preset[%u]:\n",
i);
516 TRACE(
" - morphology: %#lx\n",
preset->morphology);
521 TRACE(
" - bag[%u]:\n",
j);
525 for (
k = bag->
gen_ndx;
k < (bag + 1)->gen_ndx;
k++)
531 for (
k = bag->
mod_ndx;
k < (bag + 1)->mod_ndx;
k++)
539 TRACE(
"instruments:\n");
543 TRACE(
"instrument[%u]:\n",
i);
550 TRACE(
" - bag[%u]:\n",
j);
554 for (
k = bag->
gen_ndx;
k < (bag + 1)->gen_ndx;
k++)
560 for (
k = bag->
mod_ndx;
k < (bag + 1)->mod_ndx;
k++)
573 TRACE(
"sample[%u]:\n",
i);
579 TRACE(
" - sample_rate: %lu\n",
sample->sample_rate);
580 TRACE(
" - original_key: %u\n",
sample->original_key);
582 TRACE(
" - sample_link: %#x\n",
sample->sample_link);
583 TRACE(
" - sample_type: %#x\n",
sample->sample_type);
602 This->pool->table.cbSize =
sizeof(
This->pool->table);
615 This->pool->table.cCues++;
616 This->pool->cues[
i].ulOffset =
i;
658 desc->guidClass = CLSID_DirectMusicCollection;
661 TRACE(
"returning descriptor:\n");
711 TRACE(
"*** IDirectMusicCollection (%p) ***\n", &
This->IDirectMusicCollection_iface);
714 TRACE(
" - Collection header:\n");
715 TRACE(
" - cInstruments: %ld\n",
This->header.cInstruments);
716 TRACE(
" - Instruments:\n");
720 TRACE(
" - Instrument[%i]: %p\n",
i,
entry->instrument);
725 for (
i = 0;
This->pool &&
i <
This->pool->table.cCues;
i++)
726 TRACE(
" - index: %u, offset: %lu\n",
i,
This->pool->cues[
i].ulOffset);
728 TRACE(
" - waves:\n");
std::map< E_MODULE, HMODULE > mod
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static void list_remove(struct list_entry *entry)
static void list_add_tail(struct list_entry *head, struct list_entry *entry)
static void list_init(struct list_entry *head)
static HRESULT parse_sdta_list(struct collection *This, IStream *stream, struct chunk_entry *parent, struct soundfont *soundfont)
HRESULT collection_get_wave(struct collection *collection, DWORD index, IDirectMusicObject **out)
static ULONG WINAPI collection_Release(IDirectMusicCollection *iface)
static HRESULT WINAPI collection_GetInstrument(IDirectMusicCollection *iface, DWORD patch, IDirectMusicInstrument **instrument)
static const IDirectMusicCollectionVtbl collection_vtbl
void collection_internal_addref(struct collection *collection)
static HRESULT parse_ptbl_chunk(struct collection *This, IStream *stream, struct chunk_entry *chunk)
static struct collection * impl_from_IPersistStream(IPersistStream *iface)
HRESULT collection_create(IUnknown **ret_iface)
static HRESULT parse_wvpl_list(struct collection *This, IStream *stream, struct chunk_entry *parent)
static HRESULT WINAPI collection_QueryInterface(IDirectMusicCollection *iface, REFIID riid, void **ret_iface)
static HRESULT WINAPI collection_object_ParseDescriptor(IDirectMusicObject *iface, IStream *stream, DMUS_OBJECTDESC *desc)
static struct collection * impl_from_IDirectMusicCollection(IDirectMusicCollection *iface)
static const IPersistStreamVtbl collection_stream_vtbl
static ULONG WINAPI collection_AddRef(IDirectMusicCollection *iface)
static HRESULT parse_dls_chunk(struct collection *This, IStream *stream, struct chunk_entry *parent)
static HRESULT WINAPI collection_EnumInstrument(IDirectMusicCollection *iface, DWORD index, DWORD *patch, LPWSTR name, DWORD name_length)
static HRESULT parse_sfbk_chunk(struct collection *This, IStream *stream, struct chunk_entry *parent)
static HRESULT parse_lins_list(struct collection *This, IStream *stream, struct chunk_entry *parent)
static HRESULT parse_pdta_list(struct collection *This, IStream *stream, struct chunk_entry *parent, struct soundfont *soundfont)
void collection_internal_release(struct collection *collection)
static HRESULT WINAPI collection_stream_Load(IPersistStream *iface, IStream *stream)
static const IDirectMusicObjectVtbl collection_object_vtbl
#define DMUS_E_UNSUPPORTED_STREAM
#define DMUS_E_NOTADLSCOL
#define DMUS_E_INVALIDPATCH
HRESULT WINAPI dmobj_IDirectMusicObject_GetDescriptor(IDirectMusicObject *iface, DMUS_OBJECTDESC *desc)
void dmobject_init(struct dmobject *dmobj, const GUID *class, IUnknown *outer_unk)
HRESULT stream_chunk_get_data(IStream *stream, const struct chunk_entry *chunk, void *data, ULONG size)
HRESULT stream_next_chunk(IStream *stream, struct chunk_entry *chunk)
ULONG WINAPI dmobj_IPersistStream_Release(IPersistStream *iface)
ULONG WINAPI dmobj_IDirectMusicObject_Release(IDirectMusicObject *iface)
HRESULT dmobj_parsedescriptor(IStream *stream, const struct chunk_entry *riff, DMUS_OBJECTDESC *desc, DWORD supported)
HRESULT WINAPI dmobj_IDirectMusicObject_QueryInterface(IDirectMusicObject *iface, REFIID riid, void **ret_iface)
HRESULT WINAPI unimpl_IPersistStream_GetClassID(IPersistStream *iface, CLSID *class)
HRESULT WINAPI unimpl_IPersistStream_GetSizeMax(IPersistStream *iface, ULARGE_INTEGER *size)
HRESULT WINAPI dmobj_IDirectMusicObject_SetDescriptor(IDirectMusicObject *iface, DMUS_OBJECTDESC *desc)
void dump_DMUS_OBJECTDESC(DMUS_OBJECTDESC *desc)
const char * debugstr_chunk(const struct chunk_entry *chunk)
ULONG WINAPI dmobj_IPersistStream_AddRef(IPersistStream *iface)
const char * debugstr_dmguid(const GUID *id)
HRESULT WINAPI dmobj_IPersistStream_QueryInterface(IPersistStream *iface, REFIID riid, void **ret_iface)
ULONG WINAPI dmobj_IDirectMusicObject_AddRef(IDirectMusicObject *iface)
HRESULT stream_skip_chunk(IStream *stream, const struct chunk_entry *chunk)
HRESULT stream_get_chunk(IStream *stream, struct chunk_entry *chunk)
HRESULT WINAPI unimpl_IPersistStream_IsDirty(IPersistStream *iface)
HRESULT WINAPI unimpl_IPersistStream_Save(IPersistStream *iface, IStream *stream, BOOL clear_dirty)
static HRESULT stream_reset_chunk_data(IStream *stream, const struct chunk_entry *chunk)
#define DMUS_OBJ_NAME_INFO
#define MAKE_IDTYPE(id, type)
#define DMUS_OBJ_GUID_DLID
HRESULT instrument_create_from_chunk(IStream *stream, struct chunk_entry *parent, struct collection *collection, DMUS_OBJECTDESC *desc, IDirectMusicInstrument **ret_iface)
HRESULT instrument_create_from_soundfont(struct soundfont *soundfont, UINT index, struct collection *collection, DMUS_OBJECTDESC *desc, IDirectMusicInstrument **ret_iface)
HRESULT wave_create_from_soundfont(struct soundfont *soundfont, UINT index, IDirectMusicObject **out)
HRESULT wave_create_from_chunk(IStream *stream, struct chunk_entry *parent, IDirectMusicObject **out)
#define IDirectMusicInstrument_GetPatch(p, a)
#define IDirectMusicInstrument_AddRef(p)
#define IDirectMusicInstrument_Release(p)
#define DMUS_FOURCC_INFO_LIST
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
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 GLint GLint j
#define mmioFOURCC(c0, c1, c2, c3)
D3D11_SHADER_VARIABLE_DESC desc
const GUID IID_IPersistStream
#define IsEqualIID(riid1, riid2)
static unsigned __int64 next
#define offsetof(TYPE, MEMBER)
static __inline const char * debugstr_fourcc(unsigned int cc)
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
#define LIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field)
static const char * debugstr_sf_gen(struct sf_gen *gen)
static const char * debugstr_sf_mod(struct sf_mod *mod)
IDirectMusicCollection IDirectMusicCollection_iface
IDirectMusicInstrument * instrument
DMUS_IO_INSTRUMENT instrument
struct sf_instrument * inst
IDirectMusicObject * wave
#define CONTAINING_RECORD(address, type, field)
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out