wined3d: Replace wined3d_surface_update_desc() with wined3d_texture_update_desc().
[wine.git] / dlls / dmstyle / dmstyle_private.h
blob95ad92f14d9684e4002abc605cc5ee2f3278cdcd
1 /* DirectMusicStyle Private Include
3 * Copyright (C) 2003-2004 Rok Mandeljc
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this program; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
20 #ifndef __WINE_DMSTYLE_PRIVATE_H
21 #define __WINE_DMSTYLE_PRIVATE_H
23 #include <stdio.h>
24 #include <stdarg.h>
25 #include <string.h>
27 #define COBJMACROS
29 #include "windef.h"
30 #include "winbase.h"
31 #include "winnt.h"
32 #include "wingdi.h"
33 #include "winuser.h"
35 #include "wine/debug.h"
36 #include "wine/list.h"
37 #include "wine/unicode.h"
38 #include "winreg.h"
39 #include "objbase.h"
41 #include "dmusici.h"
42 #include "dmusicf.h"
43 #include "dmusics.h"
45 /*****************************************************************************
46 * Interfaces
48 typedef struct IDirectMusicAuditionTrack IDirectMusicAuditionTrack;
49 typedef struct IDirectMusicChordTrack IDirectMusicChordTrack;
50 typedef struct IDirectMusicCommandTrack IDirectMusicCommandTrack;
51 typedef struct IDirectMusicMelodyFormulationTrack IDirectMusicMelodyFormulationTrack;
52 typedef struct IDirectMusicMotifTrack IDirectMusicMotifTrack;
53 typedef struct IDirectMusicMuteTrack IDirectMusicMuteTrack;
54 typedef struct IDirectMusicStyleTrack IDirectMusicStyleTrack;
56 /*****************************************************************************
57 * ClassFactory
59 extern HRESULT WINAPI create_dmstyle(REFIID lpcGUID, LPVOID* ppobj) DECLSPEC_HIDDEN;
60 extern HRESULT WINAPI create_dmauditiontrack(REFIID riid, void **ret_iface) DECLSPEC_HIDDEN;
61 extern HRESULT WINAPI create_dmchordtrack(REFIID riid, void **ret_iface) DECLSPEC_HIDDEN;
62 extern HRESULT WINAPI create_dmcommandtrack(REFIID riid, void **ret_iface) DECLSPEC_HIDDEN;
63 extern HRESULT WINAPI create_dmmotiftrack(REFIID riid, void **ret_iface) DECLSPEC_HIDDEN;
64 extern HRESULT WINAPI create_dmmutetrack(REFIID riid, void **ret_iface) DECLSPEC_HIDDEN;
65 extern HRESULT WINAPI create_dmstyletrack(REFIID riid, void **ret_iface) DECLSPEC_HIDDEN;
67 /*****************************************************************************
68 * Auxiliary definitions
70 typedef struct _DMUS_PRIVATE_STYLE_BAND {
71 struct list entry; /* for listing elements */
72 IDirectMusicBand* pBand;
73 } DMUS_PRIVATE_STYLE_BAND, *LPDMUS_PRIVATE_STYLE_BAND;
75 typedef struct _DMUS_PRIVATE_STYLE_PARTREF_ITEM {
76 struct list entry; /* for listing elements */
77 DMUS_OBJECTDESC desc;
78 DMUS_IO_PARTREF part_ref;
79 } DMUS_PRIVATE_STYLE_PARTREF_ITEM, *LPDMUS_PRIVATE_STYLE_PARTREF_ITEM;
81 typedef struct _DMUS_PRIVATE_STYLE_MOTIF {
82 struct list entry; /* for listing elements */
83 DWORD dwRhythm;
84 DMUS_IO_PATTERN pattern;
85 DMUS_OBJECTDESC desc;
86 /** optional for motifs */
87 DMUS_IO_MOTIFSETTINGS settings;
88 IDirectMusicBand* pBand;
90 struct list Items;
91 } DMUS_PRIVATE_STYLE_MOTIF, *LPDMUS_PRIVATE_STYLE_MOTIF;
93 typedef struct _DMUS_PRIVATE_STYLE_ITEM {
94 struct list entry; /* for listing elements */
95 DWORD dwTimeStamp;
96 IDirectMusicStyle8* pObject;
97 } DMUS_PRIVATE_STYLE_ITEM, *LPDMUS_PRIVATE_STYLE_ITEM;
100 /*****************************************************************************
101 * IDirectMusicAuditionTrack implementation structure
103 struct IDirectMusicAuditionTrack {
104 /* IUnknown fields */
105 const IUnknownVtbl *UnknownVtbl;
106 const IDirectMusicTrack8Vtbl *TrackVtbl;
107 const IPersistStreamVtbl *PersistStreamVtbl;
108 LONG ref;
110 /* IDirectMusicAuditionTrack fields */
111 LPDMUS_OBJECTDESC pDesc;
114 /*****************************************************************************
115 * IDirectMusicChordTrack implementation structure
117 struct IDirectMusicChordTrack {
118 /* IUnknown fields */
119 const IUnknownVtbl *UnknownVtbl;
120 const IDirectMusicTrack8Vtbl *TrackVtbl;
121 const IPersistStreamVtbl *PersistStreamVtbl;
122 LONG ref;
124 /* IDirectMusicChordTrack fields */
125 LPDMUS_OBJECTDESC pDesc;
126 DWORD dwScale;
129 typedef struct _DMUS_PRIVATE_COMMAND {
130 struct list entry; /* for listing elements */
131 DMUS_IO_COMMAND pCommand;
132 IDirectMusicCollection* ppReferenceCollection;
133 } DMUS_PRIVATE_COMMAND, *LPDMUS_PRIVATE_COMMAND;
135 /*****************************************************************************
136 * IDirectMusicCommandTrack implementation structure
138 struct IDirectMusicCommandTrack {
139 /* IUnknown fields */
140 const IUnknownVtbl *UnknownVtbl;
141 const IDirectMusicTrack8Vtbl *TrackVtbl;
142 const IPersistStreamVtbl *PersistStreamVtbl;
143 LONG ref;
145 /* IDirectMusicCommandTrack fields */
146 LPDMUS_OBJECTDESC pDesc;
147 /* track data */
148 struct list Commands;
151 /*****************************************************************************
152 * IDirectMusicMelodyFormulationTrack implementation structure
154 struct IDirectMusicMelodyFormulationTrack {
155 /* IUnknown fields */
156 const IUnknownVtbl *UnknownVtbl;
157 const IDirectMusicTrack8Vtbl *TrackVtbl;
158 const IPersistStreamVtbl *PersistStreamVtbl;
159 LONG ref;
161 /* IDirectMusicMelodyFormulationTrack fields */
162 LPDMUS_OBJECTDESC pDesc;
165 /* IUnknown: */
166 extern HRESULT WINAPI IDirectMusicMelodyFormulationTrack_IUnknown_QueryInterface (LPUNKNOWN iface, REFIID riid, LPVOID *ppobj) DECLSPEC_HIDDEN;
167 extern ULONG WINAPI IDirectMusicMelodyFormulationTrack_IUnknown_AddRef (LPUNKNOWN iface) DECLSPEC_HIDDEN;
168 /* IDirectMusicTrack(8): */
169 extern ULONG WINAPI IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_AddRef (LPDIRECTMUSICTRACK8 iface) DECLSPEC_HIDDEN;
170 /* IPersistStream: */
171 extern ULONG WINAPI IDirectMusicMelodyFormulationTrack_IPersistStream_AddRef (LPPERSISTSTREAM iface) DECLSPEC_HIDDEN;
173 /*****************************************************************************
174 * IDirectMusicMotifTrack implementation structure
176 struct IDirectMusicMotifTrack {
177 /* IUnknown fields */
178 const IUnknownVtbl *UnknownVtbl;
179 const IDirectMusicTrack8Vtbl *TrackVtbl;
180 const IPersistStreamVtbl *PersistStreamVtbl;
181 LONG ref;
183 /* IDirectMusicMotifTrack fields */
184 LPDMUS_OBJECTDESC pDesc;
187 /*****************************************************************************
188 * IDirectMusicMuteTrack implementation structure
190 struct IDirectMusicMuteTrack {
191 /* IUnknown fields */
192 const IUnknownVtbl *UnknownVtbl;
193 const IDirectMusicTrack8Vtbl *TrackVtbl;
194 const IPersistStreamVtbl *PersistStreamVtbl;
195 LONG ref;
197 /* IDirectMusicMuteTrack fields */
198 LPDMUS_OBJECTDESC pDesc;
201 /*****************************************************************************
202 * IDirectMusicStyleTrack implementation structure
204 struct IDirectMusicStyleTrack {
205 /* IUnknown fields */
206 const IUnknownVtbl *UnknownVtbl;
207 const IDirectMusicTrack8Vtbl *TrackVtbl;
208 const IPersistStreamVtbl *PersistStreamVtbl;
209 LONG ref;
211 /* IDirectMusicStyleTrack fields */
212 LPDMUS_OBJECTDESC pDesc;
214 struct list Items;
217 /**********************************************************************
218 * Dll lifetime tracking declaration for dmstyle.dll
220 extern LONG DMSTYLE_refCount DECLSPEC_HIDDEN;
221 static inline void DMSTYLE_LockModule(void) { InterlockedIncrement( &DMSTYLE_refCount ); }
222 static inline void DMSTYLE_UnlockModule(void) { InterlockedDecrement( &DMSTYLE_refCount ); }
224 /*****************************************************************************
225 * Misc.
227 #include "dmutils.h"
229 #endif /* __WINE_DMSTYLE_PRIVATE_H */