* mmtk directory corrected to lowercase

This commit is contained in:
Tomas Hajny 2003-02-15 17:17:26 +00:00
parent 4fadaff606
commit 302a815e70
11 changed files with 0 additions and 10341 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,25 +0,0 @@
#
# Makefile.fpc for the Multimedia Toolkit (interface units for MMPM)
#
[package]
name=mmtk
version=1.0.6
[target]
units=mmbase sw dive mci mciapi mcidrv mmio
exampledirs=tests
[install]
fpcpackage=y
[default]
fpcdir=../../../..
[rules]
dive$(PPUEXT) : dive.pas mmbase$(PPUEXT)
mci$(PPUEXT) : mci.pas mmbase$(PPUEXT)
mmio$(PPUEXT) : mmio.pas mmbase$(PPUEXT)

View File

@ -1,17 +0,0 @@
Unit Buildall;
Interface
Uses
sw,
mmbase,
dive,
hwvideo,
mci,
mciapi,
mcidrv,
mmio;
Implementation
End.

View File

@ -1,335 +0,0 @@
{****************************************************************************
$Id$
DIVE interface unit
FPC Pascal Runtime Library for OS/2
Copyright (c) 1999-2000 by Karoly Balogh (aka Charlie/INQ)
The FPC Pascal runtime library is distributed under the Library GNU Public
License v2. So is this unit. The Library GNU Public License requires you to
distribute the source code of this unit with any product that uses it.
Because the EMX library isn't under the LGPL, we grant you an exception to
this, and that is, when you compile a program with the Free Pascal Compiler,
you do not need to ship source code with that program, AS LONG AS YOU ARE
USING UNMODIFIED CODE! If you modify this code, you MUST change the next
line:
<This an official, unmodified Free Pascal source code file.>
Send us your modified files, we can work together if you want!
Free Pascal is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
Library GNU General Public License for more details.
You should have received a copy of the Library GNU General Public License
along with Free Pascal; see the file COPYING.LIB. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
****************************************************************************}
Unit DIVE;
{Warning: This code is alfa. Future versions of this unit will propably
not be compatible.}
Interface
Uses OS2Def, PMWin, MMBase;
Const Max_Dive_Instances = 64;
DIVE_Success = $00000000;
DIVE_Err_Invalid_Instance = $00001000;
DIVE_Err_Source_Format = $00001001;
DIVE_Err_Destination_Format = $00001002;
DIVE_Err_Blitter_Not_Setup = $00001003;
DIVE_Err_Insufficient_Length = $00001004;
DIVE_Err_Too_Many_Instances = $00001005;
DIVE_Err_No_Direct_Access = $00001006;
DIVE_Err_Not_Bank_Switched = $00001007;
DIVE_Err_Invalid_Bank_Number = $00001008;
DIVE_Err_FB_Not_Acquired = $00001009;
DIVE_Err_FB_Already_Acquired = $0000100A;
DIVE_Err_Acquire_Failed = $0000100B;
DIVE_Err_Bank_Switch_Failed = $0000100C;
DIVE_Err_Deacquire_Failed = $0000100D;
DIVE_Err_Invalid_Palette = $0000100E;
DIVE_Err_Invalid_Destination_RECTL = $0000100F;
DIVE_Err_Invalid_Buffer_Number = $00001010;
DIVE_Err_SSMDD_Not_Installed = $00001011;
DIVE_Err_Buffer_Already_Accessed = $00001012;
DIVE_Err_Buffer_Not_Accessed = $00001013;
DIVE_Err_Too_Many_Bufffers = $00001014;
DIVE_Err_Allocation_Error = $00001015;
DIVE_Err_Invalid_Linesize = $00001016;
DIVE_Err_Fatal_Exception = $00001017;
DIVE_Err_Invalid_Conversion = $00001018;
DIVE_Err_VSD_Error = $00001019;
DIVE_Err_Color_Support = $0000101A;
DIVE_Err_Out_Of_Range = $0000101B;
DIVE_Warn_No_Size = $00001100;
DIVE_Buffer_Screen = $00000000;
DIVE_Buffer_Graphics_Plane = $00000001;
DIVE_Buffer_Alternate_Plane = $00000002;
DIVE_Fully_Visible = $FFFFFFFF;
{ * Use either of the two defines as the bRGB2Entries pointer to have DIVE * }
{ * query and set the physical or default palette as source or destination. * }
DIVE_Palette_Physical = $00000000;
DIVE_Palette_Default = $FFFFFFFF;
Type HDIVE = cardinal;
{ * Blitter setup structures * }
TSetup_Blitter = Record
ulStructLen : cardinal; { * ulStructLen tells how much of the structure is used. * }
{ * Comments here show appropriate values, so don't count ;) * }
fInvert : cardinal; { * Image is inverted on blit * }
{ * fInvert use: * }
{ * %0001 = 01 = $01 horizontal flip * }
{ * %0010 = 02 = $02 vertical flip * }
{ * This is the mark for 8 bytes * }
fccSrcColorFormat : FourCC; { * Source data format * }
ulSrcWidth : cardinal; { * Width in pels * }
ulSrcHeight : cardinal; { * Height in pels * }
{ * The following are for displaying a sub-portion of the image. * }
ulSrcPosX : cardinal; { * X Position of source data * }
ulSrcPosY : cardinal; { * Y Position of source data * }
{ * This is the mark for 28 bytes * }
ulDitherType : cardinal; { * Dither type * }
{ * 32 byte mark * }
fccDstColorFormat : FourCC; { * Destination color format * }
ulDstWidth : cardinal; { * Destination width in pels * }
ulDstHeight : cardinal; { * Destination height in pels * }
lDstPosX : LongInt;
lDstPosY : LongInt;
{ * 52 byte mark * }
lScreenPosX : LongInt;
lScreenPosY : LongInt;
{ * 60 byte mark * }
ulNumDstRects : cardinal;
pVisDstRects : PRectl; { * This is a pointer to an array of visible rectangles. * }
{ * 68 bytes = fully used * }
End;
PSetup_Blitter = ^TSetup_Blitter;
{ * Stuff for DiveQueryCaps() * }
TDIVE_CAPS = Record
ulStructLen : cardinal; { * SizeOf(TDIVE_CAPS) * }
ulPlaneCount : cardinal; { * Number of defined planes * }
{ * Following info applies to ulPlaneID * }
fScreenDirect : Boolean; { * Direct screen access (was type BOOL in C) * }
fBankSwitched : Boolean; { * VRAM bank-switched? (was type BOOL in C) * }
ulDepth : cardinal; { * Number of bits per pixel * }
ulHorizontalResolution : cardinal;
ulVerticalResolution : cardinal;
ulScanLineBytes : cardinal;
fccColorEncoding : FourCC;
ulApertureSize : cardinal;
ulInputFormats : cardinal; { * Number of input color formats * }
ulOutputFormats : cardinal;
ulFormatLength : cardinal; { * Length of format buffer * }
pFormatData : Pointer; { * Pointer to format buffer of FOURCC's * }
End;
PDIVE_CAPS = ^TDIVE_CAPS;
Function DiveQueryCaps(DiveCaps: PDIVE_CAPS; ulPlaneBufNum : cardinal) : cardinal; cdecl;
Function DiveOpen(Var phDiveInst : cardinal; fNonScreenInstance : cardinal;
Var ppFrameBuffer : Pointer) : cardinal; cdecl;
Function DiveClose(hDiveInst : cardinal) : cardinal; cdecl;
Function DiveSetupBlitter(hDiveInst : cardinal; pSetupBlitter : PSetup_Blitter) : cardinal; cdecl;
Function DiveBlitImage(hDiveInst : cardinal; ulSrcBufNumber : cardinal; ulDstBufNumber : cardinal) : cardinal; cdecl;
Function DiveAcquireFrameBuffer(hDiveInst : cardinal; prectlDst : PRectl) : cardinal; cdecl;
Function DiveDeacquireFrameBuffer(hDiveInst : cardinal) : cardinal; cdecl;
Function DiveCalcFrameBufferAddress(hDiveInst : cardinal;
prectlDest : PRectl;
Var pDestinationAddress : Pointer;
Var ulBankNumber : cardinal;
Var ulRemLinesInBank : cardinal) : cardinal; cdecl;
Function DiveSwitchBank(hDiveInst : cardinal; ulBankNumber : cardinal) : cardinal; cdecl;
{ Notes on DiveAllocImageBuffer:
If pbImageBuffer is not NULL, the buffer is associated rather than
allocated. If pbImageBuffer is not NULL and the buffer number
pointed to by pulBufferNumber is non-zero, a new buffer pointer is
associated with the buffer number. Even though no memory is
allocated by DiveAllocImageBuffer when user-allocated buffers are
associated, DiveFreeImageBuffer should be called to release the
buffer association to avoid using up available buffer indexes.
The specified line size will be used if a buffer is allocated in
system memory, or if a user buffer is associated. If the
specified line size is zero, the allocated line size is rounded up
to the nearest DWORD boundry. }
Function DiveAllocImageBuffer(hDiveInst : cardinal;
Var ulBufferNumber : cardinal;
fccColorSpace : FourCC;
ulWidth : cardinal;
ulHeight : cardinal;
ulLineSizeBytes : cardinal;
Var bImageBuffer : Pointer) : cardinal; cdecl;
Function DiveFreeImageBuffer(hDiveInst : cardinal; ulBufferNumber : cardinal) : cardinal; cdecl;
Function DiveBeginImageBufferAccess(hDiveInst : cardinal;
ulBufferNumber : cardinal;
Var pbImageBuffer : Pointer;
Var ulBufferScanLineBytes : cardinal;
Var ulBufferScanLines : cardinal) : cardinal; cdecl;
Function DiveEndImageBufferAccess(hDiveInst : cardinal; ulBufferNumber : cardinal) : cardinal; cdecl;
{/* Notes on palettes:
Neither DiveSetSourcePalette nor DiveSetDestinationPalette API's will set
the physical palette. If your application MUST set the PHYSICAL palette,
try using no more than 236 entries (the middle 236: 10-245, thus leaving
the top and bottom 10 entries for the Workplace Shell). If your
application MUST use ALL 256 entries, it must do so as a full-screen
(i.e. maximized) application. Remember, No WM_REALIZEPALETTE message
will be sent to other running applications, meaning they will not redraw
and their colors will be all wrong. It is not recommended that a
developer use these commands:
To set physical palette, do the following:
hps = WinGetPS ( HWND_DESKTOP );
hdc = GpiQueryDevice ( hps );
GpiCreateLogColorTable ( hps, LCOL_PURECOLOR | LCOL_REALIZABLE,
LCOLF_CONSECRGB, 0, 256, (PLONG)plRGB2Entries );
Gre32EntrY3 ( hdc, 0L, 0x000060C6L );
WinInvalidateRect ( HWND_DESKTOP, (PRECTL)NULL, TRUE );
WinReleasePS ( hps );
To reset physical palette, do the following:
hps = WinGetPS ( HWND_DESKTOP );
hdc = GpiQueryDevice ( hps );
Gre32EntrY3 ( hdc, 0L, 0x000060C7L );
WinInvalidateRect ( HWND_DESKTOP, (PRECTL)NULL, TRUE );
WinReleasePS ( hps );
*/}
Function DiveSetDestinationPalette(hDiveInst : cardinal;
ulStartIndex : cardinal;
ulNumEntries : cardinal;
Var bRGB2Entries : Pointer) : cardinal; cdecl;
Function DiveSetSourcePalette(hDiveInst : cardinal;
ulStartIndex : cardinal;
ulNumEntries : cardinal;
Var bRGB2Entries : Pointer) : cardinal; cdecl;
Function DiveSetTransparentBlitMode(hDiveInst : cardinal;
ulStartIndex : cardinal;
ulValue1 : cardinal;
ulValue2 : cardinal) : cardinal; cdecl;
Implementation
Function DiveQueryCaps(DiveCaps : PDIVE_CAPS; ulPlaneBufNum : cardinal) : cardinal; cdecl;
External 'DIVE' Index 1;
Function DiveOpen(Var phDiveInst : cardinal; fNonScreenInstance : cardinal; Var ppFrameBuffer : Pointer) : cardinal; cdecl;
External 'DIVE' Index 2;
Function DiveClose(hDiveInst : cardinal) : cardinal; cdecl;
External 'DIVE' Index 3;
Function DiveSetupBlitter(hDiveInst : cardinal; pSetupBlitter : PSetup_Blitter) : cardinal; cdecl;
External 'DIVE' Index 4;
Function DiveBlitImage(hDiveInst : cardinal; ulSrcBufNumber : cardinal; ulDstBufNumber : cardinal) : cardinal; cdecl;
External 'DIVE' Index 5;
Function DiveAcquireFrameBuffer(hDiveInst : cardinal; prectlDst : PRectl) : cardinal; cdecl;
External 'DIVE' Index 6;
Function DiveDeacquireFrameBuffer(hDiveInst : cardinal) : cardinal; cdecl;
External 'DIVE' Index 8;
Function DiveCalcFrameBufferAddress(hDiveInst : cardinal;
prectlDest : PRectl;
Var pDestinationAddress : Pointer;
Var ulBankNumber : cardinal;
Var ulRemLinesInBank : cardinal) : cardinal; cdecl;
External 'DIVE' Index 11;
Function DiveSwitchBank(hDiveInst : cardinal; ulBankNumber : cardinal) : cardinal; cdecl;
External 'DIVE' Index 7;
Function DiveAllocImageBuffer(hDiveInst : cardinal;
Var ulBufferNumber : cardinal;
fccColorSpace : FourCC;
ulWidth : cardinal;
ulHeight : cardinal;
ulLineSizeBytes : cardinal;
Var bImageBuffer : Pointer) : cardinal; cdecl;
External 'DIVE' Index 12;
Function DiveFreeImageBuffer(hDiveInst : cardinal;
ulBufferNumber : cardinal) : cardinal; cdecl;
External 'DIVE' Index 13;
Function DiveBeginImageBufferAccess(hDiveInst : cardinal;
ulBufferNumber : cardinal;
Var pbImageBuffer : Pointer;
Var ulBufferScanLineBytes : cardinal;
Var ulBufferScanLines : cardinal) : cardinal; cdecl;
External 'DIVE' Index 14;
Function DiveEndImageBufferAccess(hDiveInst : cardinal; ulBufferNumber : cardinal) : cardinal; cdecl;
External 'DIVE' Index 15;
Function DiveSetDestinationPalette(hDiveInst : cardinal;
ulStartIndex : cardinal;
ulNumEntries : cardinal;
Var bRGB2Entries : Pointer) : cardinal; cdecl;
External 'DIVE' Index 9;
Function DiveSetSourcePalette(hDiveInst : cardinal;
ulStartIndex : cardinal;
ulNumEntries : cardinal;
Var bRGB2Entries : Pointer) : cardinal; cdecl;
External 'DIVE' Index 10;
Function DiveSetTransparentBlitMode(hDiveInst : cardinal;
ulStartIndex : cardinal;
ulValue1 : cardinal;
ulValue2 : cardinal) : cardinal; cdecl;
External 'DIVE' Index 18;
End.
{
$Log$
Revision 1.1 2003-02-15 16:59:09 hajny
* mmtk directory corrected to lowercase
Revision 1.1 2003/02/09 13:49:06 hajny
+ mmtk added
}

File diff suppressed because it is too large Load Diff

View File

@ -1,134 +0,0 @@
{
$Id$
Copyright (c) 1992, 1993 by International Business Machines Corporation
Copyright (c) 2002 by Andry Svirgunov (cool2@ngs.ru)
Copyright (c) 2002-2003 by Yuri Prokushev (prokushev@freemail.ru)
High-Level MCI Interfaces of OS/2 Multimedia subsystem
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License (LGPL) as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version. This program is
distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.
See the GNU Library General Public License for more details. You should
have received a copy of the GNU Library General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**********************************************************************}
{
@abstract(High-Level MCI Interfaces of OS/2 Multimedia subsystem)
@author(Andry Svirgunov (cool2@ngs.ru))
@author(Yuri Prokushev (prokushev@freemail.ru))
@created(01 Oct 2002)
@lastmod(19 Jan 2003)
This is the High-Level Macro Service API Routines of OS/2 Multimedia subsystem.
All functions are from MCIAPI dll (which also contains REXX functions.
See "Multimedia with REXX" for more information.).
Warning: This code is alfa. Future versions of this unit will propably
not be compatible.
}
Unit mciapi;
{$MODE ObjFPC}
Interface
// Flags for mciPlayFile
Const
// digital and overlay
MCI_OWNERISPARENT = $0001;
// stop playing whatever is playing
MCI_STOPACTIVE = $0002;
// play and return immediately
MCI_ASYNCRENDEZVOUS = $0004;
// wait til prev is finished then play
MCI_RENDEZVOUS = $0008;
// no syncup will be done
MCI_ASYNC = $0010;
{
This function plays a multimedia data file (video, audio) using MCI commands.
hwndOwner is handle of owner window. If hwndOwner equial to zero used active
window.
pszFile is pointer to asciiz name of data file. For compound files can be
used 'filename+element'.
ulFlags is MCI_* flags.
pszTitle is title of generated window (e.g. for video). Ignored if not generated.
hwndViewport is handle of window for displaying video. If none, then default
window displayed.
}
Function mciPlayFile(hwndOwner: Cardinal; // Ownerwindow
pszFile: PChar; // File
ulFlags: Cardinal; // Flags
pszTitle: PChar; // Title
hwndViewport: Cardinal): // Viewport Window
Cardinal; cdecl;
Function mciPlayResource(hwndOwner: Cardinal; // Owner Window
hmod: LongInt; // Module
resType: LongInt; // Resource Type
resID: LongInt; // Resource ID
ulFlags: Cardinal; // Flags
pszTitle: PChar; // Title
hwndViewport: Cardinal): // Viewport Window
Cardinal; cdecl;
Function mciRecordAudioFile(hwndOwner: Cardinal;
pszFile,
pszTitle: PChar;
ulFlags: Cardinal):
Cardinal; cdecl;
// Audio Macro Service Constants and Routines
Const
MMIO_FE_FINDFIRST = 1;
MMIO_FE_FINDNEXT = 2;
MMIO_FE_FINDEND = 3;
MMIO_FE_FINDELEMENT = 4;
MMIO_RE_COMPACT = 1;
Function mmioRemoveElement(pszFileElement: pChar;
ulFlag: LongInt):
Cardinal; cdecl;
Function mmioFindElement(ulCode: LongInt; // Find Code
pszElement: PChar; // Element
ulElementLen: LongInt; // Element Buffer Length
pszFile: PChar;
ulReserved: LongInt): // Compound File
Cardinal; cdecl;
Implementation
Function mciPlayFile(hwndOwner: Cardinal; pszFile: PChar; ulFlags: Cardinal; pszTitle: PChar; hwndViewport: Cardinal): Cardinal; cdecl;
external 'MCIAPI' index 10;
Function mciPlayResource(hwndOwner: Cardinal; hmod: LongInt; resType: LongInt; resID: LongInt; ulFlags: Cardinal; pszTitle: PChar; hwndViewport: Cardinal): Cardinal; cdecl;
external 'MCIAPI' index 11;
Function mciRecordAudioFile(hwndOwner: Cardinal; pszFile, pszTitle: PChar; ulFlags: Cardinal): Cardinal; cdecl;
external 'MCIAPI' index 12;
Function mmioRemoveElement(pszFileElement: PChar; ulFlag: LongInt): Cardinal; cdecl;
external 'MCIAPI' index 16;
Function mmioFindElement(ulCode: LongInt; pszElement: PChar; ulElementLen: LongInt; pszFile: PChar; ulReserved: LongInt): Cardinal; cdecl;
external 'MCIAPI' index 18;
end.
{
$Log$
Revision 1.1 2003-02-15 16:59:09 hajny
* mmtk directory corrected to lowercase
Revision 1.1 2003/02/09 13:49:06 hajny
+ mmtk added
}

View File

@ -1,369 +0,0 @@
{
$Id$
Copyright (c) 1991, 1992 by International Business Machines Corporation
Copyright (c) 2002 by Andry Svirgunov (cool2@ngs.ru)
Copyright (c) 2002-2003 by Yuri Prokushev (prokushev@freemail.ru)
MCI drivers interface
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License (LGPL) as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version. This program is
distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.
See the GNU Library General Public License for more details. You should
have received a copy of the GNU Library General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**********************************************************************}
{
@abstract(MCI drivers interface)
@author(Andry Svirgunov (cool2@ngs.ru))
@author(Yuri Prokushev (prokushev@freemail.ru))
@created(01 Oct 2002)
@lastmod(19 Jan 2003)
MCI drivers interface
Warning: This code is alfa. Future versions of this unit will propably
not be compatible.
}
Unit mcidrv;
Interface
Type
GID=Integer;
///**************************************************************************/
// MCI Driver message identifiers */
///**************************************************************************/
const
MCIDRV_SAVE = 900;
MCIDRV_RESTORE = 901;
MCIDRV_SYNC = 902;
MCIDRV_CHANGERESOURCE = 903;
MCIDRV_CONNECT = 904;
MCIDRV_ASSOCIATE = 905;
MCIDRV_DISCONNECT = 906;
MCIDRV_TEST_CONNECTION = 907;
MCIDRV_START = 908;
MCIDRV_SEEK = 909;
MCIDRV_STOP = 910;
MCIDRV_MODIFY_CONNECTION = 911;
MCIDRV_INIT_CONNECTION = 912;
MCIDRV_DEINIT_CONNECTION = 913;
MCIDRV_ENABLE_EVENT = 915;
MCIDRV_GETTIME = 917;
///*******************************************************************/
// The following messages are used by the MCIDRV_CONNECT message */
///*******************************************************************/
MCIDRV_CONNECT_TARGET = $00010000;
MCIDRV_CONNECT_SOURCE = $00020000;
MCIDRV_SET_CONNNECTOR_TYPE = $00040000;
MCIDRV_CHANGE_SEM = $00080000;
///*******************************************************************/
// The following messages are used by MCIDRV_MODIFY_CONNECTION */
///*******************************************************************/
MCIDRV_MODIFY_10 =$00100000; // back level MCI driver.
MCIDRV_MIX_STANDALONE =$00200000;
///*******************************************************************/
// The following messages are used by MCIDRV_START */
///*******************************************************************/
MCIDRV_CUE_PLAYBACK = $00010000;
MCIDRV_CUE_RECORD = $00020000;
MCIDRV_START_PLAYBACK = $00040000;
MCIDRV_START_RECORD = $00080000;
MCIDRV_START_PREROLL = $00100000;
///*******************************************************************/
// The following messages are used by MCIDRV_ASSOCIATE */
///*******************************************************************/
MCIDRV_OUTPUT = $00010000;
MCIDRV_INPUT = $00020000;
///*******************************************************************/
// The following messages are used by MCIDRV_STOP */
///*******************************************************************/
MCIDRV_PAUSE_STREAM_NETWORK = $00010000;
MCIDRV_FLUSH_STREAM_NETWORK = $00020000;
MCIDRV_DISCARD_STREAM_NETWORK = $00040000;
///*******************************************************************/
// The following messages are used by MCIDRV_DEINIT_CONNECTION */
///*******************************************************************/
MCIDRV_MODIFY_HANDLER =$00010000;
///*******************************************************************/
// The following range of message ID's are reserved for internal use */
// by MCI drivers */
///*******************************************************************/
MCI_INTERNAL_MESSAGES_START = 1000;
MCI_INTERNAL_MESSAGES_END = 1999;
///*******************************************************************/
// Flags used by the string parser for command tables */
// NOTE: All flags must have an "L" suffix in order to be parsed as */
// DWORDs by the resource compiler */
///*******************************************************************/
MCI_COMMAND_HEAD = $00000001;
MCI_END_COMMAND = $00000002;
MCI_END_COMMAND_LIST = $00000003;
MCI_RETURN = $00000004;
MCI_STRING = $00000005;
MCI_FLAG = $00000006;
MCI_INTEGER = $00000007;
MCI_CONSTANT = $00000008;
MCI_CONSTANT_INTEGER = $00000009;
MCI_CONSTANT_STRING = $0000000A;
MCI_END_CONSTANT = $0000000B;
MCI_DEFAULT_STRING = $0000000C;
MCI_DEFAULT_INTEGER = $0000000D;
MCI_RETURN_TYPE = $0000000E;
MCI_RETURN_TYPE_STRING = $0000000F;
MCI_END_RETURN_TYPE = $00000010;
MCI_CONSTANT_2 = $00000011;
MCI_END_CONSTANT_2 = $00000012;
MCI_CONSTANT_PAIR = $00000013;
MCI_END_CONSTANT_PAIR = $00000014;
MCI_CONSTANT_INTEGER_PAIR = $00000015;
MCI_CONSTANT_STRING_PAIR = $00000016;
MCI_RECTL = $00000017;
MCI_CONSTANT_4 = $00000018;
MCI_END_CONSTANT_4 = $00000019;
MCI_FOURCC = $0000001A;
MCI_OR = $0000001B;
MCI_END_OR = $0000001C;
MCI_STRING_LIST = $0000001D;
///*******************************************************************/
// Return types supported by mciSendString */
// Values 0x0000 -> 0xFF00 are reserved by MMPM2 */
// Values 0xFF01 -> 0xFFFF are user definable */
///*******************************************************************/
MCI_INTEGER_RETURNED = $1000;
MCI_COLONIZED2_RETURN = $2000;
MCI_COLONIZED3_RETURN = $3000;
MCI_COLONIZED4_RETURN = $4000;
MCI_TRUE_FALSE_RETURN = $5000;
MCI_ON_OFF_RETURN = $6000;
MCI_DEVICENAME_RETURN = $7000;
MCI_TIME_FORMAT_RETURN = $8000;
MCI_SPEED_FORMAT_RETURN = $9000;
MCI_MODE_RETURN = $A000;
MCI_MEDIA_TYPE_RETURN = $B000;
MCI_TRACK_TYPE_RETURN = $C000;
MCI_CONNECTOR_TYPE_RETURN = $D000;
MCI_CDXA_CHANNEL_DESTINATION_RETURN = $E000;
MCI_PREROLL_TYPE_RETURN = $F000;
MCI_FORMAT_TAG_RETURN = $F100;
MCI_SEQ_SYNCHRONIZATION_RETURN = $F200;
MCI_VIDEO_QUALITY_RETURN = $F300;
MCI_AUDIO_QUALITY_RETURN = $F400;
MCI_IMAGE_QUALITY_RETURN = $F500;
MCI_VIDEO_COMPRESSION_RETURN = $F600;
MCI_AUDIO_COMPRESSION_RETURN = $F700;
MCI_IMAGE_COMPRESSION_RETURN = $F800;
MCI_RECTL_RETURN = $F900;
MCI_FOURCC_RETURN = $FA00;
MCI_IMAGE_PELFORMAT_RETURN = $FB00;
MCI_DIRECTION_RETURN = $FC00;
MCI_SIGNED_INTEGER_RETURN = $FD00;
MCI_USER_RETURN = $FF01;
///*******************************************************************/
// End of msg text used by mciGetErrorString */
///*******************************************************************/
MCIERR_BASE = 5000;
MCIERR_MSG_TABLE_END = MCIERR_BASE + 7000;
///*******************************************************************/
// */
// MCI DEVICE shareability categories */
// */
///*******************************************************************/
FIXEDSINGLECONTEXT = $0001;
DYNAMICSINGLECONTEXT = $0002;
LIMITEDMULTIPLECONTEXT = $0003;
UNLIMITEDMULTIPLECONTEXT = $0004;
///*******************************************************************/
// MCI driver flag for close during exit list processing */
///*******************************************************************/
MCI_CLOSE_EXIT = $10000000;
///*******************************************************************/
// MCI driver specific error table resource number base */
///*******************************************************************/
MMERROR_TABLE_BASE = 500;
///*******************************************************************/
// */
// MCIDRV_CHANGERESOURCE message flags */
// */
///*******************************************************************/
Type
mciDrv_ChangeResource_Parms = record
pInstance : Pointer; // pointer to device instance
usResourceUnits : Integer; // required resource units
usResourceClass : Integer; // resource class
usResourcePriority : Integer; // resource priority
end;
pmciDrv_ChangeResource_Parms = ^mciDrv_ChangeResource_Parms;
///*******************************************************************/
// */
// MCIDRV_ENABLE_EVENT message flags */
// */
///*******************************************************************/
Type
HSTREAM=LongInt;
hID=LongInt;
hEvent = LongInt; // Event Handle
phEvent = ^hEvent; // Pointer to Event Handle
HWND = LongInt;
MMTIME = LongInt;
Type
evcb = record
ulType : LongInt; // Event type (input)
ulSubType : LongInt; // Event SubType (input)
ulFlags : LongInt; // 0 (Input), status (Output)
hstream : HSTREAM; // handle to stream for this event
hid : hID; // handler Id (input/output)
ulStatus : LongInt; // Event status (output)
ulEventParm1 : LongInt; // Event parameters (input), hID if implicit event
ulEventParm2 : LongInt; // Event parameters (input)
ulEventParm3 : LongInt; // Event parameters (input)
end;
pevcb = ^evcb;
Type
MCIDRV_EVENT_PARMS = record
ulLength:LongInt; // Length of event parms */
pevcb:PEVCB; // pointer to event control block */
phevent:PHEVENT; // pointer to the event to enable in network */
end;
PMCIDRV_EVENT_PARMS=^MCIDRV_EVENT_PARMS;
///*******************************************************************/
// */
// MCIDRV_SYNC message flags */
// */
///*******************************************************************/
Const
MCIDRV_SYNC_ENABLE = $00000100;
MCIDRV_SYNC_DISABLE = $00000200;
MCIDRV_SYNC_REC_PULSE = $00000400;
MCIDRV_SYNC_MASTER = $00000800;
MCIDRV_SYNC_SET_MASTER = $00001000;
Type
sync_evcb = record
ulType : LongInt; // Event_SYNC
ulSubType : LongInt; // Not used
ulSyncFlags : LongInt; // 0 (input),status (output)
hstream : HStream; // handle to stream for this event
hid : hID; // Handler id
ulStatus : LongInt; // Event status (output)
mmtimeStart : mmTime; // Filled in by Sync/Stream manager
// at SpiEnableSync time. (input)
mmtimeMaster : mmTime; // Filled in by Master SH (input)
mmtimeSlave : mmTime; // Filled in by slave SH. (output)
end;
pSync_evcb = ^sync_Evcb;
Type
mciDrv_Sync_Parms = record
hStreams : ^hStream; // Pointer to list of stream IDs
ulNumStreams : LongInt; // number of stream IDs
mmTime : mmTime; // Sync Pulse Time
NonStreamMaster : Boolean; // TRUE if this device can be master
pevcbSyncPulse : pSync_evcb; // pointer to EVCB address (output)
hidMaster : hID; // Master NULL sh ID (valid only on
// MCIDRV_SYNC_MASTER
ulReserved1 : LongInt; // Reserved field
ulReserved2 : LongInt; // Reserved field
end;
pmciDrv_Sync_Parms = ^mciDrv_Sync_Parms;
//*******************************************************************/
// contains information for open message for MCI drivers */
//*******************************************************************/
Type
mmDrv_Open_Parms = record
hwndCallback : hwnd; // call back handle
usDeviceID : Integer; // The device ID assigned to this instance
usDeviceType : Integer; // The device type number
usDeviceOrd : Integer; // The device ordinal number
pInstance : Pointer; // pointer to the instance structure allocated
// initialized by the driver. The MCI driver
// will fill in this parameter.
szDevDLLName : Array[0..259] of Char; // Character string containing the device
// specific DLL name to call for the open.
// (ie. ACPA.DLL)
pszElementName : pChar; // typically a file name or NULL
usDevParmLen : Integer; // Device parameters data block length.
pDevParm : Pointer; // Device parameters data block. This data
// block is unique to each type of device.
// (ie. LVD "COM1 9600 N 7 1").
Reserved0 : Pointer;
usResourceUnitsRequired : Integer; // number of resource units this instance
// requires.
usResourceClass : Integer; // resource class this instance belongs to
usResourcePriority : Integer; // resource priority for this instance
ulParam2 : LongInt; // Pointer to MCI_OPEN structure
end;
pmmDrv_Open_Parms = ^mmDrv_Open_Parms;
///*******************************************************************/
// */
// MCIDRV_RESTORE message flags */
// */
///*******************************************************************/
Type
MCIDRV_RESTORE_PARMS = record
ulLength:longint; // Length of restore parms */
ulMasterVolume:longint; // Master volume value */
end;
PMCIDRV_RESTORE_PARMS=^MCIDRV_RESTORE_PARMS;
function mdmDriverNotify( usDeviceID: Integer; wnd: Hwnd; usMsgType: Integer;
usUserParm: Integer; ulMsgParm: LongInt): LongInt; cdecl;
Implementation
function mdmDriverNotify( usDeviceID: Integer; wnd: Hwnd; usMsgType: Integer;
usUserParm: Integer; ulMsgParm: LongInt): LongInt; cdecl; external 'MDM' index 17;
End.
{
$Log$
Revision 1.1 2003-02-15 16:59:09 hajny
* mmtk directory corrected to lowercase
Revision 1.1 2003/02/09 13:49:06 hajny
+ mmtk added
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,91 +0,0 @@
OS/2 Multimedia Toolkit
=======================
OS/2 Multimedia toolkit is set of units to manage various parts of multimedia
subsystem of OS/2. Not a part of standard OS/2 Multimedia:
a) WarpOverlay! library interface (hwvideo.pas)
MMPM/2 Documentation
--------------------
OS/2 Multimedia Subsystem Programming Guide
Provides guidelines for developing multimedia subsystems. Each subsystem
component is described in detail in individual chapters. Models are used
to complement the information provided by component sample program templates.
OS/2 Multimedia Application Programming Guide
Provides advisory information on application interfaces to help you select
and implement functions for your OS/2 multimedia applications. Code examples
from fully documented sample programs accompany the descriptions of the
functions.
OS/2 Multimedia Programming Reference
Provides detailed information on multimedia functions, messages, and data
structures to enable you to write code for your multimedia application
programs and subsystems.
The MMPM/2 Device Driver Reference for OS/2
It is for subsystem developers who want to write their own physical
device drivers (and associated virtual device drivers) to support audio
and video adapters in the Multimedia Presentation Manager/2 system.
Multimedia REXX
Describes REXX functions that enable media control interface string commands
to be sent from an OS/2 command file to control multimedia devices. This
online book is provided with OS/2 multimedia.
Guide to Multimedia User Interface Design - (41G2922)
Describes design concepts to be considered when designing a CUA multimedia
interface that is consistent within a particular multimedia product and
across other products.
WarpOverlay!
------------
WarpOverlay! is video acceleration driver. This is original readme.txt
(BEWARE! Most probably, Valery don't know about this port):
-Begin-
Short overview:
hwvideo.h is a main header for use WarpOverlay! video acceleration driver.
There are no more or less suitable SDK yet, I am to lazy :(
DEMO - small stupid example of using WarpOverlay!, currently it does not sup-
port many features of WarpOverlay!, only basic functionality.
it just tried to load file demo.mpg and cyclically play it.
Used mpeg1 decoder pretty unstable and very unoptimal. This is just example.
Many of MPEG files can crush decoder. I am not very fimilar with different
MPEG aspects and do not want to mess with it, sorry.
I just included one small MPEG1 file, which work well.
RGB - example of using RGB (FOURCC_R565) overlay. Attention! RGB overlay
not supported for NVidia chips and for Matrox G200.
Known worked RGB overlay: Rage128, Radeon, i740, Savages.
Please contact me, if you have questions/troubles with this example or with
WarpOverlay! usage.
Valery Gaynullin
MPEG decoding engine based on the Berkeley MPEG (mpegplay).
-End-
Longterm plans
--------------
a) Fix lot of bugs ;)
b) Add support for IBM Multimedia Classes and CWMM Classes for WPS (as fast as
SOM and WPS toolkits will be presented)
c) SEAL library interface (seal.pas) www.netlabs.org/hobbes.nmsu.edu
SEAL is module player library. At the present time SEAL not developing
anymore (for all platforms), but still very usefull for mudule music fans.
d) DualMode Library (dual.pas) www.netlabs.org
DualMode library allows to use common access method as for fullscreen (MGL)
as for windowed (DIVE) video modes.
e) Examples, examples, examples (tests as well)
CU!
Yuri & Andry

View File

@ -1,542 +0,0 @@
{
$Id$
Copyright (c) 1990-1991 International Business Machines Corporation
Copyright (c) 2003 by Yuri Prokushev (prokushev@freemail.ru)
This is the multimedia unit file that has the typedefs, defines and
function prototypes for Multimedia Applets.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License (LGPL) as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version. This program is
distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.
See the GNU Library General Public License for more details. You should
have received a copy of the GNU Library General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**********************************************************************}
{
@abstract(OS/2 Multimedia Applets)
@author(Yuri Prokushev (prokushev@freemail.ru))
@created(19 Jan 2003)
@lastmod(23 Jan 2003)
This is the multimedia unit file that has the typedefs, defines and
function prototypes for Multimedia Applets.
Warning: This code is alfa. Future versions of this unit will propably
not be compatible.
}
Unit SW;
Interface
Uses
Os2Def,
PmWin;
Const
MAX_SMBDTEXT=35;
MB_ICONCUSTOM=$0001;
SC_DEFAULTSIZE=$c000; // WM_COMMAND from SysMenu
WM_INITSECONDARYWINDOW=$0519; // MP1: NULL, MP2: CreateParams
QS_FRAME=$1; // Flag set to query frame
QS_DIALOG=$2; // Flag set to query dialog
// #pragma pack(4)
Type
TSMBD=record
achText: Array[0..MAX_SMBDTEXT + 1] of Char; // Text of the button. eg. "~Cancel"
idButton: Cardinal; // Button ID returned when user chooses
flStyle: Longint; // Button style or'ed with internal
end;
PSMBD=^TSMBD;
TSMBINFO=record
hIcon: Cardinal; // Icon handle
cButtons: Cardinal; // Number of buttons
flStyle: Cardinal; // Icon style flags (MB_ICONQUESTION, etc...)
hwndNotify: HWND; // Reserved
smbd: PSMBD; // Array of button definitions
end;
PSMBINFO=^TSMBINFO;
// #pragma pack()
// Analogous to WinDlgBox
function WinSecondaryWindow(hwndParent: hwnd; hwndOwner: hwnd;
pfnDlgProc: proc; hmod: Cardinal; idDlg: Cardinal; pCreateParams: Pointer): Cardinal; cdecl;
// Analogous to WinLoadDlg
function WinLoadSecondaryWindow(hwndParent: hwnd; hwndOwner: hwnd;
pfnDlgProc: proc; hmod: Cardinal; idDlg: Cardinal; pCreateParams: Cardinal): hwnd; cdecl;
// Analogous to WinProcessDlg
function WinProcessSecondaryWindow(hwndSW: hwnd): Cardinal; cdecl;
// Analogous to WinCreateDlg
function WinCreateSecondaryWindow(hwndParent: hwnd; hwndOwner: hwnd;
pfnDlgProc: proc; idDlg: Cardinal; pCreateParams: Pointer): hwnd; cdecl;
function WinDefaultSize(Wnd: hwnd): Longbool; cdecl;
function WinInsertDefaultSize(Wnd: hwnd; pszDefaultSize: pChar): Longbool; cdecl;
function WinQuerySecondaryhwnd(Wnd: hwnd; ulFlag: Cardinal): hwnd; cdecl;
//************************************************************************/
//* WinSecondaryMessageBox */
//* */
//* Parameters: HWND hwndParent - handle of the parent window. */
//* HWND hwndOwner - handle of the owner window. */
//* PSZ pszText - message text. */
//* PSZ pszCaption - title of the message box. */
//* ULONG idWindow - Message box id */
//* PSMBINFO psmbinfo - pointer to button/icon info */
//************************************************************************/
function WinSecondaryMessageBox(hwndParent: hwnd; hwndOwner: hwnd;
pszText: pChar; pszCaption: pChar; idWindow: Cardinal; smb: psmbinfo): Cardinal; cdecl;
//************************************************************************/
//* WinDismissSecondaryWindow */
//* */
//* This function should be called from within the dlg proc. The hwnd */
//* passed in MUST be the handle to the actual dialog. */
//************************************************************************/
function WinDismissSecondaryWindow(hwndDlg: hwnd; ulResult: Cardinal): Longbool; cdecl;
//************************************************************************/
//* The parameter hwnd can be either the secondary window or the actual */
//* dialog. */
//************************************************************************/
function WinDestroySecondaryWindow(Wnd: hwnd): Longbool; cdecl;
function WinDefSecondaryWindowProc(Wnd: hwnd; msg: Cardinal;
mp1: mParam; mp2: mParam): mResult; cdecl;
//************************************************************************/
//* Graphic Buttons */
//************************************************************************/
//************************************************************************/
//* Notes on Using GraphicButtons */
//* */
//* GraphicButton CONTROL DATA */
//* */
//* The format of the control data for GraphicButtons is */
//* "button Text, number of bitmaps, bitmap resource id's ..." */
//* */
//* */
//* Following are two example window templates of GraphicButtons: */
//* */
//* 1) CONTROL "", IDD_MP_REV, 120, 10, TS_PB_WIDTH, TS_PB_HEIGHT,*/
//* WC_GRAPHICBUTTON, */
//* GBS_TWOSTATE | GBS_HILITEBITMAP | */
//* WS_VISIBLE | WS_TABSTOP */
//* CTLDATA GB_RESOURCE,"~REV", 2, ID_MP_REV1, ID_MP_REV0*/
//* */
//* The above graphicbutton has id IDD_MP_REV and is of type */
//* GBS_TWOSTATE and GBS_HILITEBITMAP. The GBS_HILITEBITMAP allows */
//* a different bitmap to be displayed when the button is in the */
//* hilite state. The graphicbutton will be displayed with text */
//* "REV" and has "R" as the mnemonic. It has 2 bitmaps associated */
//* with it. Their resource id are ID_MP_REV1 and ID_MP_REV0. */
//* */
//* */
//* 2) CONTROL "", IDD_MP_PLAY, 175, 10, TS_PB_WIDTH, */
//* TS_PB_HEIGHT, WC_GRAPHICBUTTON, */
//* GBS_AUTOTWOSTATE | GBS_AUTOANIMATION | */
//* WS_VISIBLE | WS_TABSTOP */
//* CTLDATA GB_RESOURCE, "~PLAY", 9, */
//* ID_MP_STOP0, ID_MP_PLAY1, ID_MP_PLAY2,*/
//* ID_MP_PLAY3, ID_MP_PLAY4, ID_MP_PLAY5,*/
//* ID_MP_PLAY6, ID_MP_PLAY7, ID_MP_REV1 */
//* */
//* The above graphicbutton has id IDD_MP_PLAY and is of type */
//* GBS_AUTOTWOSTATE and GBS_AUTOANIMATE. When clicked upon, */
//* the button will automatically toggle the state and animation. */
//* The graphicbutton will be displayed with text "PLAY" */
//* and mnemonic "P". It has 9 bitmaps associated with it. */
//* */
//* */
//* */
//* GraphicButton Painting */
//* */
//* Due to the PM design, whenever a graphicbutton is clicked, */
//* it is sent a BN_PAINT (to paint a non-hilite state) and then */
//* BN_CLICKED. Thus, for GBS_AUTO* style graphicbuttons, a paint */
//* request is generated before the button has a chance to change */
//* its state (BN_CLICKED). To avoid this premature painting, */
//* code was inserted to delay the painting of graphicbuttons */
//* GB_PAINT_RESOLUTION milliseconds whenever the button is switching */
//* FROM the hilite paint state. */
//* */
//************************************************************************/
Function WinRegisterGraphicButton: Longbool; cdecl;
Const
WC_GRAPHICBUTTON=PChar($ffff0040);
//************************************************************************/
//* GraphicButton Animation/TwoState constants */
//************************************************************************/
//************************************************************************/
//* Graphic Button Style bits */
//************************************************************************/
GBS_TWOSTATE = $1000; // indicates TwoState button
GBS_AUTOTWOSTATE = $2000; // will auto toggle state up/down
GBS_ANIMATION = $4000; // indicates Animatable button
GBS_AUTOANIMATION = $8000; // will auto toggle anim. on/off
GBS_DISABLEBITMAP = $0010; // allows a diff. bitmap when disabled
GBS_HILITEBITMAP = $0020; // allows a diff. bitmap when hilited
GBS_3D_TEXTRECESSED = $0040; // display text in 3-D recessed
GBS_3D_TEXTRAISED = $0080; // display text in 3-D raised
GBS_MINIBUTTON = $0001; // mini button style
//************************************************************************/
//* Graphic Button User Constants */
//************************************************************************/
//************************************************************************/
//* Codes to reference allowed GraphicButton states (or paint states) */
//************************************************************************/
GB_ERROR = -1; // GraphicButton Error
GB_UP = 1; // GraphicButton up (and paint) state
GB_DOWN = 2; // GraphicButton down (and paint) state
GB_DISABLE = 3; // GraphicButton disabled state
GB_HILITE = 4; // GraphicButton paint state only
GB_OUTOFHILITE = 5; // Changing out of hilite paint state
//************************************************************************/
//* Codes for various GraphicButton message function parameters */
//************************************************************************/
GB_TOGGLE = 10; // GraphicButton toggle
GB_CURRENTSTATE = 11; // GraphicButton's current state
GB_ANIMATIONBEGIN = 12; // when refering to index of anim start
GB_ANIMATIONEND = 13; // when refering to index of anim end
GB_MAXINDEX = 14; // GraphicButton max. index
//************************************************************************/
//* Codes to set/query text position relative to the bitmap */
//************************************************************************/
GB_TEXTBELOW = 1; // place text below bitmap
GB_TEXTABOVE = 2; // place text above bitmap
//************************************************************************/
//* Codes used to set the animation frame with message GBM_SETBITMAPINDEX*/
//************************************************************************/
GB_INDEX_FORWARD = -1; // advance one frame foward
GB_INDEX_BACKWARD = -2; // advance one frame backwards
GB_INDEX_FIRST = -3; // set to first frame of sequence
GB_INDEX_LAST = -4; // set to last frame of sequence
// #pragma pack(1)
type
TgbtnCdata = packed record
usReserved: Word;
pszText: PChar;
hmod: Cardinal;
cBitmaps: Word;
aidBitmap: Array[0..1] of Word;
end;
pgbtnCdata = ^TgbtnCdata;
//#pragma pack()
const
GB_RESOURCE = 1;
GB_STRUCTURE = 0;
//************************************************************************/
//* Notification Messages received by GraphicButton Parent */
//***********************************************************************/
//************************************************************************/
//* GBN_BUTTONDOWN, GBN_BUTTONUP, and GBN_BUTTONHILITE */
//* */
//* The notification messages are passed as part of the WM_CONTROL */
//* message. */
//* */
//* msg = WM_CONTROL */
//* mp1 = MPFROM2SHORT(gpb_id, button_state) */
//* gpd_id = identity of the displayed graphic pushbutton */
//* button_state = GBN_BUTTONUP, GBN_BUTTONDOWN, or */
//* GBN_BUTTONHILITE */
//* */
//************************************************************************/
GBN_BUTTONUP = $0524;
GBN_BUTTONDOWN = $0525;
GBN_BUTTONHILITE = $0526;
GBN_SETFOCUS = $0527; // mp2 TRUE for gaining focus
//************************************************************************/
//* Messages to GraphicButton Windows */
//************************************************************************/
//************************************************************************/
//* GBM_SETGRAPHICDATA */
//************************************************************************/
//* mp1 = MPFROMP((PGBTNCDATA)&gbtncdata); Graphic button control data*/
//* mp2 = NULL; not used */
//* */
//* WARNING: This message resets all button parameters. */
//* */
//************************************************************************/
GBM_SETGRAPHICDATA = $052A;
//************************************************************************/
//* GBM_ANIMATE */
//************************************************************************/
//* mp1 = MPFROMSHORT(fStart) TRUE to start animation, FALSE to stop*/
//* mp2 = MPFROMSHORT(fContinue) TRUE continue anim. at currently */
//* displayed bitmap, FALSE restart at */
//* the beginning. */
//* */
//* Returns TRUE on Success */
//* FALSE on Failure */
//* */
//************************************************************************/
GBM_ANIMATE = $052B;
//************************************************************************/
//* GBM_SETANIMATIONRATE */
//************************************************************************/
//* mp1 = MPFROMSHORT(ULmIL); Animation rate in milliseconds */
//* mp2 = NULL not used */
//* */
//* */
//* Returns TRUE on Success */
//* FALSE on Failure */
//* */
//************************************************************************/
GBM_SETANIMATIONRATE = $052C;
//************************************************************************/
//* GBM_QUERYANIMATIONACTIVE */
//************************************************************************/
//* mp1 = NULL; not used */
//* mp2 = NULL; not used */
//* */
//* */
//* Returns TRUE if animation is active, else GB_ERROR */
//* */
//* */
//************************************************************************/
GBM_QUERYANIMATIONACTIVE = $052D;
//************************************************************************/
//* GBM_QUERYANIMATIONRATE */
//************************************************************************/
//* mp1 = NULL; not used */
//* mp2 = NULL; not used */
//* */
//* */
//* Returns ULONG sepcifying animation rate in milliseconds */
//* */
//* */
//************************************************************************/
GBM_QUERYANIMATIONRATE = $052E;
//************************************************************************/
//* GBM_SETBITMAPINDEX */
//************************************************************************/
//* mp1 = MPFROMSHORT(usGB_State) Bitmap index to change */
//* GB_UP, */
//* GB_DOWN, */
//* GB_DISABLE, */
//* GB_HILITE, */
//* GB_ANIMATIONBEGIN, */
//* GB_ANIMATIONEND, */
//* or GB_CURRENTSTATE chng current state (up or down) bitmap*/
//* mp2 = MPFROMSHORT(sFrameCode) Set according to code or frame desire */
//* GB_INDEX_FORWARD, chng to next bitmap in circular array */
//* GB_INDEX_BACKWARD, " " prev " " " " */
//* GB_INDEX_FIRST, " " first " " " " */
//* GB_INDEX_LAST, " " last " " " " */
//* or desired_bitmap otherwise desired bmp index specified */
//* */
//* Returns TRUE on Success, otherwise FALSE */
//* */
//************************************************************************/
GBM_SETBITMAPINDEX = $052F;
//************************************************************************/
//* GBM_QUERYBITMAPINDEX */
//************************************************************************/
//* mp1 = MPFROMSHORT(usGB_State) Query bitmap index */
//* GB_UP, */
//* GB_DOWN, */
//* GB_DISABLE, */
//* GB_HILITE, */
//* GB_ANIMATIONBEGIN, */
//* GB_ANIMATIONEND, */
//* or GB_CURRENTSTATE query current state (up or down) bitmap */
//* mp2 = NULL; not used */
//* */
//* Returns USHORT specifying the index */
//* */
//* */
//************************************************************************/
GBM_QUERYBITMAPINDEX = $0530;
//************************************************************************/
//* GBM_SETSTATE */
//************************************************************************/
//* mp1 = MPFROMSHORT(usStateCode) Set twostate button to specified */
//* state */
//* GB_UP, */
//* GB_DOWN, */
//* or GB_TOGGLE toggle (up/down) to (down/up) */
//* mp2 = MPFROMBOOL(fRepaint) TRUE - state changed and displayed */
//* FALSE - state changed, not displayed */
//* */
//* Returns TRUE on Success */
//* FALSE on Failure */
//* */
//* */
//************************************************************************/
GBM_SETSTATE = $0531;
//************************************************************************/
//* GBM_QUERYSTATE */
//************************************************************************/
//* */
//* mp1 = NULL not used */
//* mp2 = NULL not used */
//* */
//* Returns the state (GB_UP or GB_DOWN) else GB_ERROR. */
//* */
//* */
//************************************************************************/
GBM_QUERYSTATE = $0532;
//************************************************************************/
//* GBM_SETTEXTPOSITION */
//************************************************************************/
//* mp1 = MPFROMSHORT(usTextPos) How to position text relative to */
//* bitmap */
//* GB_TEXTBELOW, */
//* or GB_TEXTABOVE */
//* mp2 = NULL not used */
//* */
//* Returns TRUE on Success, otherwise FALSE */
//* */
//************************************************************************/
GBM_SETTEXTPOSITION = $0533;
//************************************************************************/
//* GBM_QUERYTEXTPOSITION */
//************************************************************************/
//* */
//* mp1 = NULL not used */
//* mp2 = NULL not used */
//* */
//* Returns GB_TEXTBELOW, GB_TEXTABOVE, GB_TEXTRIGHT, GB_TEXTLEFT */
//* on success, otherwise FALSE */
//* */
//************************************************************************/
GBM_QUERYTEXTPOSITION = $0534;
//************************************************************************/
//* GraphicButton END */
//************************************************************************/
MM_TABHELP = $054C;
Implementation
function WinSecondaryWindow(hwndParent: hwnd; hwndOwner: hwnd;
pfnDlgProc: proc; hmod: Cardinal; idDlg: Cardinal; pCreateParams: Pointer): Cardinal; cdecl;
external 'SW' index 1;
function WinLoadSecondaryWindow(hwndParent: hwnd; hwndOwner: hwnd;
pfnDlgProc: proc; hmod: Cardinal; idDlg: Cardinal; pCreateParams: Cardinal): hwnd; cdecl;
external 'SW' index 2;
function WinProcessSecondaryWindow(hwndSW: hwnd): Cardinal; cdecl;
external 'SW' index 3;
function WinCreateSecondaryWindow(hwndParent: hwnd; hwndOwner: hwnd;
pfnDlgProc: proc; idDlg: Cardinal; pCreateParams: Pointer): hwnd; cdecl;
external 'SW' index 4;
function WinDefaultSize(Wnd: hwnd): Longbool; cdecl;
external 'SW' index 11;
function WinInsertDefaultSize(Wnd: hwnd; pszDefaultSize: pChar): Longbool; cdecl;
external 'SW' index 12;
function WinQuerySecondaryhwnd(Wnd: hwnd; ulFlag: Cardinal): hwnd; cdecl;
external 'SW' index 52;
function WinSecondaryMessageBox(hwndParent: hwnd; hwndOwner: hwnd;
pszText: pChar; pszCaption: pChar; idWindow: Cardinal; smb: psmbinfo): Cardinal; cdecl;
external 'SW' index 5;
function WinDismissSecondaryWindow(hwndDlg: hwnd; ulResult: Cardinal): Longbool; cdecl;
external 'SW' index 6;
function WinDestroySecondaryWindow(Wnd: hwnd): Longbool; cdecl;
external 'SW' index 7;
function WinDefSecondaryWindowProc(Wnd: hwnd; msg: Cardinal;
mp1: mParam; mp2: mParam): mResult; cdecl;
external 'SW' index 8;
Function WinRegisterGraphicButton: Longbool; cdecl;
external 'SW' index 14;
End.
{
$Log$
Revision 1.1 2003-02-15 16:59:09 hajny
* mmtk directory corrected to lowercase
Revision 1.1 2003/02/09 13:49:06 hajny
+ mmtk added
}
{ No information about following functions
Index Name
³ 00009 ³ WinQuerySecondaryFrame
³ 00010 ³ WinQuerySecondaryDialog
³ 00013 ³ WinRegisterCircularSlider
³ 00053 ³ WinQueryDefaultSize
³ 00057 ³ WinSWAssocResModule
³ 00060 ³ WinReportMessage
³ 00061 ³ WinRegisterSelectionSlider
³ 00067 ³ WinRegisterCircularSlider2
}