source: trunk/include/helpers/mmpmh.h@ 315

Last change on this file since 315 was 243, checked in by umoeller, 23 years ago

New build system, multimedia, other misc fixes.

  • Property svn:eol-style set to CRLF
  • Property svn:keywords set to Author Date Id Revision
File size: 9.5 KB
Line 
1
2/*
3 *@@sourcefile mmpmh.h:
4 * header file for mmpmh.c. See notes there.
5 *
6 * Note: Version numbering in this file relates to XWorkplace version
7 * numbering.
8 *
9 *@@include #define INCL_GPI // required for INCL_MMIO_CODEC
10 *@@include #define INCL_GPIBITMAPS // required for INCL_MMIO_CODEC
11 *@@include #include <os2.h>
12 *@@include // multimedia includes
13 *@@include #define INCL_MCIOS2
14 *@@include #define INCL_MMIOOS2
15 *@@include #define INCL_MMIO_CODEC
16 *@@include #include <os2me.h>
17 *@@include #include "helpers\mmpmh.h"
18 */
19
20/*
21 * Copyright (C) 1997-2003 Ulrich M”ller.
22 *
23 * This file is part of the "XWorkplace helpers" source package.
24 * This is free software; you can redistribute it and/or modify
25 * it under the terms of the GNU General Public License as published
26 * by the Free Software Foundation, in version 2 as it comes in the
27 * "COPYING" file of the XWorkplace main distribution.
28 * This program is distributed in the hope that it will be useful,
29 * but WITHOUT ANY WARRANTY; without even the implied warranty of
30 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
31 * GNU General Public License for more details.
32 */
33
34#if __cplusplus
35extern "C" {
36#endif
37
38#ifndef MMPMH_HEADER_INCLUDED
39 #define MMPMH_HEADER_INCLUDED
40
41 /********************************************************************
42 *
43 * Errors
44 *
45 ********************************************************************/
46
47 #define ERROR_MM_FIRST 45000
48
49 #define MMHERR_MMPM_NOT_INITIALIZED (ERROR_MM_FIRST)
50 #define MMHERR_NO_IOPROC (ERROR_MM_FIRST + 1)
51 #define MMHERR_NOT_IMAGE_FILE (ERROR_MM_FIRST + 2)
52 #define MMHERR_OPEN_FAILED (ERROR_MM_FIRST + 3)
53 #define MMHERR_INCOMPATIBLE_HEADER (ERROR_MM_FIRST + 4)
54 #define MMHERR_GPIGREATEPS_FAILED (ERROR_MM_FIRST + 5)
55 #define MMHERR_GPICREATEBITMAP_FAILED (ERROR_MM_FIRST + 6)
56 #define MMHERR_GPISETBITMAP_FAILED (ERROR_MM_FIRST + 7)
57 #define MMHERR_GPISETBITMAPBITS_FAILED (ERROR_MM_FIRST + 8)
58 #define MMHERR_MMIOREAD_FAILED (ERROR_MM_FIRST + 9)
59
60 #define ERROR_MM_LAST (ERROR_MM_FIRST + 9)
61
62 /********************************************************************
63 *
64 * MMPM/2 imports
65 *
66 ********************************************************************/
67
68 // mciSendCommand
69 typedef ULONG APIENTRY FNTD_MCISENDCOMMAND(USHORT,
70 USHORT,
71 ULONG,
72 PVOID,
73 USHORT);
74 // mciGetErrorString
75 typedef ULONG APIENTRY FNTD_MCIGETERRORSTRING(ULONG,
76 PSZ,
77 USHORT);
78
79 // mmioIniFileCODEC
80 typedef ULONG APIENTRY FNTD_MMIOINIFILECODEC(PCODECINIFILEINFO,
81 ULONG);
82 typedef ULONG APIENTRY FNTD_MMIOQUERYCODECNAMELENGTH(PCODECINIFILEINFO,
83 PULONG);
84 typedef ULONG APIENTRY FNTD_MMIOQUERYCODECNAME(PCODECINIFILEINFO,
85 PSZ,
86 PULONG);
87
88 typedef ULONG APIENTRY FNTD_MMIOQUERYFORMATCOUNT(PMMFORMATINFO,
89 PLONG,
90 ULONG,
91 ULONG);
92
93 typedef ULONG APIENTRY FNTD_MMIOGETFORMATS(PMMFORMATINFO,
94 LONG,
95 PVOID,
96 PLONG,
97 ULONG,
98 ULONG);
99
100 typedef ULONG APIENTRY FNTD_MMIOGETFORMATNAME(PMMFORMATINFO,
101 PSZ,
102 PLONG,
103 ULONG,
104 ULONG);
105
106 typedef ULONG APIENTRY FNTD_MMIOIDENTIFYFILE(PCSZ pszFileName,
107 PMMIOINFO pmmioinfo,
108 PMMFORMATINFO pmmformatinfo,
109 PFOURCC pfccStorageSystem,
110 ULONG ulReserved,
111 ULONG ulFlags );
112
113 typedef ULONG APIENTRY FNTD_MMIOQUERYHEADERLENGTH(HMMIO hmmio,
114 PLONG plHeaderLength,
115 ULONG ulReserved,
116 ULONG ulFlags );
117
118 typedef ULONG APIENTRY FNTD_MMIOGETHEADER(HMMIO hmmio,
119 PVOID pHeader,
120 LONG lHeaderLength,
121 PLONG plBytesRead,
122 ULONG ulReserved,
123 ULONG ulFlags);
124
125 typedef ULONG APIENTRY FNTD_MMIOSETHEADER(HMMIO hmmio,
126 PVOID pHeader,
127 LONG lHeaderLength,
128 PLONG plBytesWritten,
129 ULONG ulReserved,
130 ULONG ulFlags);
131
132 typedef ULONG APIENTRY FNTD_MMIOINIFILEHANDLER(PMMINIFILEINFO pmminifileinfo,
133 ULONG ulFlags);
134
135 typedef ULONG APIENTRY FNTD_MMIOIDENTIFYSTORAGESYSTEM(PSZ pszFileName,
136 PMMIOINFO pmmioinfo,
137 PFOURCC pfccStorageSystem);
138
139 typedef ULONG APIENTRY FNTD_MMIODETERMINESSIOPROC(PSZ pszFileName,
140 PMMIOINFO pmmioinfo,
141 PFOURCC pfccStorageSystem,
142 PSZ pszParsedRemainder);
143
144 typedef ULONG APIENTRY FNTD_MMIOQUERYIOPROCMODULEHANDLE(PMMIOPROC pIOProc,
145 PHMODULE phmodIOProc);
146
147 typedef ULONG APIENTRY FNTD_MMIOCFCOMPACT(PSZ pszFileName, ULONG ulFlags);
148
149 typedef HMMIO APIENTRY FNTD_MMIOOPEN(PCSZ pszFileName,
150 PMMIOINFO pmmioinfo,
151 ULONG ulOpenFlags);
152
153 typedef LONG APIENTRY FNTD_MMIOREAD(HMMIO hmmio,
154 PCHAR pchBuffer,
155 LONG cBytes);
156
157 // mmioClose
158 typedef USHORT APIENTRY FNTD_MMIOCLOSE(HMMIO hmmio,
159 USHORT usFlags);
160
161
162 /* ******************************************************************
163 *
164 * Global variables
165 *
166 ********************************************************************/
167
168 extern FNTD_MCISENDCOMMAND *G_mciSendCommand;
169 extern FNTD_MCIGETERRORSTRING *G_mciGetErrorString;
170
171 extern FNTD_MMIOINIFILECODEC *G_mmioIniFileCODEC;
172 extern FNTD_MMIOQUERYCODECNAMELENGTH *G_mmioQueryCODECNameLength;
173 extern FNTD_MMIOQUERYCODECNAME *G_mmioQueryCODECName;
174 extern FNTD_MMIOINIFILEHANDLER *G_mmioIniFileHandler;
175 extern FNTD_MMIOQUERYFORMATCOUNT *G_mmioQueryFormatCount;
176 extern FNTD_MMIOGETFORMATS *G_mmioGetFormats;
177 extern FNTD_MMIOGETFORMATNAME *G_mmioGetFormatName;
178
179 extern FNTD_MMIOCLOSE *G_mmioClose;
180
181 /* ******************************************************************
182 *
183 * Public entry points
184 *
185 ********************************************************************/
186
187 APIRET mmhInit(VOID);
188
189 APIRET mmhGetIOProcs(ULONG flMediaType,
190 PMMFORMATINFO *ppaInfos,
191 PLONG pcFormats);
192
193 APIRET mmhDescribeFCC(FOURCC fcc);
194
195 APIRET mmhIdentifyFile(PCSZ pcszFilename,
196 PMMFORMATINFO pmmfi);
197
198 APIRET mmhOpenImage(PCSZ pcszFilename,
199 FOURCC fccIOProc,
200 HMMIO *phmmio);
201
202 APIRET mmhLoadImageHeader(HMMIO hmmio,
203 PMMIMAGEHEADER pmmih,
204 PULONG pcbBytesPerRow);
205
206 APIRET mmhLoadImageBits(HMMIO hmmio,
207 PMMIMAGEHEADER pmmih,
208 ULONG cbBytesPerRow,
209 PBYTE *ppbBitmapBits);
210
211 APIRET mmhCreateBitmapFromBits(PSIZEL pszlTarget,
212 PBITMAPINFOHEADER2 pbmihSource,
213 PBYTE pbBitmapBits,
214 HBITMAP *phbmOut);
215
216 APIRET mmhLoadImage(PCSZ pcszFilename,
217 FOURCC fccIOProc,
218 PSIZEL pszlBmp,
219 HBITMAP *phbmOut);
220
221#endif
222
223#if __cplusplus
224}
225#endif
226
Note: See TracBrowser for help on using the repository browser.