blob: 546d64308fc0d4e7dbd1b81d7900bb64769d2276 [file] [log] [blame]
Rok Mandeljc72c80372004-05-13 00:00:22 +00001/* Debug and Helper Functions
2 *
3 * Copyright (C) 2003-2004 Rok Mandeljc
4 *
Alexandre Julliard7718d2b2007-05-30 12:54:07 +02005 * 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.
Rok Mandeljc72c80372004-05-13 00:00:22 +00009 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
Alexandre Julliard7718d2b2007-05-30 12:54:07 +020012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
Rok Mandeljc72c80372004-05-13 00:00:22 +000014 *
Alexandre Julliard7718d2b2007-05-30 12:54:07 +020015 * 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
Rok Mandeljc72c80372004-05-13 00:00:22 +000018 */
19
20#ifndef __WINE_DMLOADER_DEBUG_H
21#define __WINE_DMLOADER_DEBUG_H
22
23/* used for generic dumping (copied from ddraw) */
24typedef struct {
25 DWORD val;
26 const char* name;
27} flag_info;
28
29typedef struct {
30 const GUID *guid;
31 const char* name;
32} guid_info;
33
34/* used for initialising structs */
35#define DM_STRUCT_INIT(x) \
36 do { \
37 memset((x), 0, sizeof(*(x))); \
38 (x)->dwSize = sizeof(*x); \
39 } while (0)
40
41#define FE(x) { x, #x }
42#define GE(x) { &x, #x }
43
Rok Mandeljc72c80372004-05-13 00:00:22 +000044/* check whether chunkID is valid dmobject form chunk */
Marcus Meissner8d1a9bb2011-05-13 16:57:22 +020045extern BOOL IS_VALID_DMFORM (FOURCC chunkID) DECLSPEC_HIDDEN;
Rok Mandeljc72c80372004-05-13 00:00:22 +000046/* translate STREAM_SEEK flag to string */
Marcus Meissner8d1a9bb2011-05-13 16:57:22 +020047extern const char *resolve_STREAM_SEEK (DWORD flag) DECLSPEC_HIDDEN;
Rok Mandeljc72c80372004-05-13 00:00:22 +000048/* FOURCC to string conversion for debug messages */
Marcus Meissner8d1a9bb2011-05-13 16:57:22 +020049extern const char *debugstr_fourcc (DWORD fourcc) DECLSPEC_HIDDEN;
Rok Mandeljc72c80372004-05-13 00:00:22 +000050/* DMUS_VERSION struct to string conversion for debug messages */
Marcus Meissner8d1a9bb2011-05-13 16:57:22 +020051extern const char *debugstr_dmversion (const DMUS_VERSION *version) DECLSPEC_HIDDEN;
Rok Mandeljc72c80372004-05-13 00:00:22 +000052/* FILETIME struct to string conversion for debug messages */
Marcus Meissner8d1a9bb2011-05-13 16:57:22 +020053extern const char *debugstr_filetime (const FILETIME *time) DECLSPEC_HIDDEN;
Rok Mandeljc72c80372004-05-13 00:00:22 +000054/* returns name of given GUID */
Marcus Meissner8d1a9bb2011-05-13 16:57:22 +020055extern const char *debugstr_dmguid (const GUID *id) DECLSPEC_HIDDEN;
Rok Mandeljc72c80372004-05-13 00:00:22 +000056/* returns name of given error code */
Marcus Meissner8d1a9bb2011-05-13 16:57:22 +020057extern const char *debugstr_dmreturn (DWORD code) DECLSPEC_HIDDEN;
Rok Mandeljc72c80372004-05-13 00:00:22 +000058
Rok Mandeljc72c80372004-05-13 00:00:22 +000059/* dump whole DMUS_OBJECTDESC struct */
Marcus Meissner8d1a9bb2011-05-13 16:57:22 +020060extern const char *debugstr_DMUS_OBJECTDESC (LPDMUS_OBJECTDESC pDesc) DECLSPEC_HIDDEN;
61extern const char *debugstr_DMUS_IO_CONTAINER_HEADER (LPDMUS_IO_CONTAINER_HEADER pHeader) DECLSPEC_HIDDEN;
62extern const char *debugstr_DMUS_IO_CONTAINED_OBJECT_HEADER (LPDMUS_IO_CONTAINED_OBJECT_HEADER pHeader) DECLSPEC_HIDDEN;
Rok Mandeljc72c80372004-05-13 00:00:22 +000063
64#endif /* __WINE_DMLOADER_DEBUG_H */