home *** CD-ROM | disk | FTP | other *** search
- This is the READ.ME file for DiamondWare's Sound ToolKit for Windows. It
- was finalized for version 1.22 on 11/06/96.
-
- It's organized into several sections. Following this introduction is a
- quick guide to the distribution, language notes for each supported language
- (C/C++, Visual BASIC, and Pascal/Delphi), and additional notes for each
- version past 1.0. If you're already familiar with the product, you may
- skip the guide and language notes. Otherwise, we recommend that you read
- this file in its entirety (skipping uninteresting language notes).
-
- You will always be able to find the latest announcements and demos of
- DiamondWare products on http://www.dw.com.
-
-
- ANNOUNCEMENTS
-
- o CoolEdit, GoldWave, and AWave can now read/write DWD files
-
- o Smacker for Windows will support the WIN-STK in its next version
-
- CoolEdit allows the storage of author, description, copyright, and other
- information in audio files. The DWD filters fully support this feature.
-
- You can download the CoolEdit filters from our website. Smacker is the
- leading video playback engine for games. It will utilize the WIN-STK
- for sound playback.
-
-
- ******************************************************************************
- Guide to the Distribution
- ******************************************************************************
-
- The PACKING.LST file tells you what all these files and subdirectories are.
-
-
- BINARIES
-
- The WIN-STK includes 16- and 32-bit DLLs, plus special support for Win32s
- under Windows 3.1x (new for v1.1). The 16-bit DLL will run under Windows
- 3.1, 95, and NT. The 32-bit DLL runs only under 95 and NT. There are
- 32-bit and 16-bit thunk DLLs for Win32s.
-
- A utility called WAV2DWD converts WAVE files to the DWD format, which is
- what the DLL can play. Use W2D16.EXE or W2D32.EXE, as appropriate to your
- operating system (although W2D16.EXE will also run under 95 or NT).
-
- 16- and 32-bit versions of the sample program, PLAYSTK, are provided.
-
- The DLLs, utilities, and sample executables are in the BIN directory.
-
-
- DEF FILES
-
- In case you need them, the .DEF files with which the DLLs were built are
- in the DEF directory. There is one for 16-bit, one for 32-bit, and two
- for Win32s.
-
-
- DOCUMENTATION
-
- The complete documentation is provided online in both ASCII and Microsoft
- Word format. The commercial version also comes with a printed book. The
- documentation files are in the DOC directory.
-
-
- ******************************************************************************
- Language Notes
- ******************************************************************************
-
- C/C++ NOTES
-
- If you're using Visual BASIC or Pascal (including Delphi) then skip this
- section.
-
- The WIN-STK includes all the files you will need if you're using a compiler
- from Microsoft, Borland, Watcom, Symantec, or IBM. It provides a 16- and
- 32-bit version of a .LIB file for each compiler (except IBM Visual Age for
- C++ which is 32-bit only). The MSC, BORC, WATC, SYMC, and IBMC subdirectories
- each contain the compiler-specific files: DWSW16.LIB and DWSW32.LIB. Use the
- file appropriate to your compiler vendor, and 16- or 32-bit environment.
-
- Note: The code in DWSW32.LIB autodetects whether it's running under Win32s
- or a real Win32 environment (Windows 95 or NT). It will call into the
- correct DLL: DWSW32.DLL or DWSW32S.DLL. DWSW32S.DLL thunks to DWSW16S.DLL
- which calls into DWSW16.DLL. In other words, you will need to install
- three DLLs to work in a Win32s environment, but you need only one
- executable for Windows 95/NT and Win32s--at least as far as the WIN-STK
- goes. There are many substantive differences between the various
- implementations of Win32, and especially so with Win32s.
-
- Symantec users: You must copy the contents of PARTIAL.DEF (or PARTIALS.DEF
- if you you're using the Win32s DLL directly) into your program's .DEF file.
- This tells your compiler what the names in our DLL look like.
-
- The header file for the WIN-STK is called DWS.H, and it's in the C
- directory. The source code to the PLAYSTK sample program is also there.
- It should compile and run in 16- or 32-bits, using any of the supported
- compilers.
-
- To keep the number of files in the distribution down, there are no
- makefiles for PLAYSTK. Building it should be straightforward. Some
- compilers may require you to specify the common dialog library as an
- additional file in the link.
-
- If you compile PLAYSTK for 16-bit, make sure that you specify the large
- memory model. The default is usually medium memory model.
-
-
- VISUAL BASIC NOTES
-
- If you're using C/C++ or Pascal (including Delphi) then skip this section.
-
- There are major differences between version 3 and version 4. For this
- reason, there are VB3 and VB4 subdirectories under the VB directory.
-
- For VB3, there is DWS.BAS. This is the WIN-STK module which will allow
- you to access the DLL. Include it in your project.
-
- There is also the complete source code to PLAYSTK, including the icon,
- form, and make file.
-
- Note: Due to the way VB3 handles strings, and the fact that our MIDI
- playback function requires the filename of a MIDI song, you will not
- be able to play music using the WIN-STK. However, you can work around
- this by specifying no music support when you call dws_Init. You are
- then free to call the Windows MCI functions for music. This limitation
- will be corrected in a future release.
-
- For VB4, we provide a single DWS.BAS, which you should include in your
- 16- or 32-bit project. But there are many differences between the
- versions of PLAYSTK, so there are further subdirectories for PLAY16 and
- PLAY32.
-
- Note: For 32-bit VB4, if you want to make an executable which runs under
- Win32s, you will need to change DWS.BAS. In each WIN-STK function
- declaration, change "DWSW32.DLL" to "DWSW32S.DLL". This DLL is the correct
- one for Win32s.
-
- Note: For VB3, and 16-bit VB4, there is a size limitation on digitized
- sounds (or any other buffer type, for that matter) imposed on you by
- Visual BASIC. VB3 will only allow up to 32K. VB4 (16-bit) will only
- allow up to 64K.
-
-
- PASCAL (INCLUDING DELPHI) NOTES
-
- If you're using C/C++ or Visual BASIC then skip this section.
-
- We provide DWS.PAS, which is the unit file for the WIN-STK. It's been
- compiled and tested with Delphi 1, Delphi 2, and Borland Pascal.
-
- There is also the complete source code to PLAYSTK.
-
- Note: For 32-bit Delphi 2, if you want to make an executable which runs
- under Win32s, you will need to change DWS.PAS. Change the line which
- contains DWSDLL = 'DWSW32'; to DWSDLL = 'DWSW32S'; instead. This DLL is
- the correct one for Win32s.
-
-
- ******************************************************************************
- What's New for v1.10
- ******************************************************************************
-
- ADDITIONAL DOCUMENTATION NOTES
-
- When you install your program on the user's machine, please put the WIN-STK
- DLLs in the same directory as your executable(s). This will ensure that
- other programs using different versions of the WIN-STK will coexist with
- yours. In fact, this is a good practice for all DLLs in Windows.
-
-
- The flags field in the dws_DPLAY struct was designed to allow you to use as
- many or as few of the features available through the dws_DPlay function as
- you want. At a minimum, you must set dws_dplay_SND. This indicates that
- you have specified a pointer to a sound buffer. All other fields (e.g.
- pitch, loop count, etc.) are optional. The flags mechanism also protects
- your program from breaking when you upgrade to new WIN-STK releases. If
- there are new features, your program won't inadvertantly use them.
-
-
- WIN32S SUPPORT
-
- The WIN-STK now supports Win32s on Windows 3.1x systems. DWSW32S.DLL is
- the primary DLL for Win32s. It provides the entire documented WIN-STK
- API. It then thunks down to DWSW16S.DLL which then makes calls into
- DWSW16.DLL. The primary difference between the 16- and the main 32-bit
- DLL is multithreading. Under Win32s, therefore, the WIN-STK uses the
- 16-bit kernel to actually perform the work.
-
- If you're using C/C++, the code in DWSW32.LIB will automatically determine
- whether it's running under Win32s or a real Win32 environment (Windows 95
- or NT). It will call into the correct DLL. This library file is
- equivalent to a standard import library, though it was written in C. Its
- other advantage is that it will not terminate your program if it can't find
- the DLL (it will instead report no sound capabilities present--true enough
- without the WIN-STK DLLs).
-
- In Win32s systems, you must install DWSW32S.DLL, DWSW16S.DLL, and
- DWSW16.DLL. But, you will only need to deliver only one executable--at
- least as far as the WIN-STK goes. However, there are many substantial
- differences between different implementations of Win32s, especially so with
- Win32s. Caveat programmer!
-
- Note: Visual BASIC and Pascal/Delphi users do not have access to this C/C++
- mechanism and must provide a separate executable file for Win32s and
- Windows 95/NT.
-
- For 32-bit VB4, if you want to make an executable which runs under Win32s,
- you will need to change DWS.BAS. In each WIN-STK function declaration,
- change "DWSW32.DLL" to "DWSW32S.DLL". This DLL is the correct one for
- Win32s.
-
- For 32-bit Delphi 2, if you want to make an executable which runs under
- Win32s, you will need to change DWS.PAS. Change the line which contains
- DWSDLL = 'DWSW32'; to DWSDLL = 'DWSW32S'; instead. This DLL is the correct
- one for Win32s.
-
-
- BUG FIXES
-
- o Glitch causing the system to pause when a MIDI song looped eliminated
-
- o System volume settings no longer lost
-
-
- NEW FEATURES
-
- o dws_dplay_SYNCHRONOUS flag causes dws_DPlay to wait until sound done
-
- o New event messages: dws_EVENT_SOUNDSTARTED and dws_EVENT_SOUNDABORTED
-
- If you set the dws_dplay_CALLBACK flag in the dws_DPLAY struct, WIN-STK
- v1.0 would send you a window message when the sound completed. V1.1 will
- also send messages when the sound actually starts playing, and if it's
- aborted (i.e. displaced by another sound with a higher priority).
-
-
- OTHER ADDITIONS
-
- o Added new error: dws_M_BADMPLAY, indicating bad dws_MPLAY struct
-
- This error would occur if the MIDI file specified was not found.
-
-
- ******************************************************************************
- What's New for v1.20
- ******************************************************************************
-
- BUG FIXES
- o Fixed set-volume bug in dws_SetInfo
-
- o Fixed rare bug in dws_DDiscardAO
-
- o Fixed dws_DGetInfo and dws_DSetInfo bug (mishandling second DPLAY struct)
-
- o Fixed sequencing bug
-
- o Robust reentrancy protection (although no bugs had been reported)
-
- o In Win32s, compensation for the 16-bit HWND and UINT in the DPLAY struct
-
- o Calls return dws_NOTINITTED rather than dws_NOTSUPPORTED when appropriate
-
- o dws_MClear no longer unpauses the music
-
- o Calling dws_Init, requesting no sound services, now returns success
-
- o Fixed rare bug which played past end of sound
-
- o Fixed bug in pitch changer (to detect end-of-sound in all cases)
-
- o Fixed timer problem, now timing is much more consistent
-
-
- NEW FEATURES
-
- o Getting and Setting start, current, and end playback points
-
- o Uses the most capable sound driver, rather than the last enumerated
-
- o WAV2DWD (32-bit version) now supports long filenames
-
- o Now supports the IBM Visual Age for C++ compiler
-
- o Now works with the Watcom C/C++ compiler's Win386 mode
-
- o Now reports dws_NOTSUPPORTED if DLL is not present (C/C++ only)
-
-
- OTHER IMPROVEMENTS
-
- o Added more error checking to dws_MPlay
-
- o Added more error checking to dws_DGetRateFromDWD
-
- o Added invalid pointer detection (32 bit code) for dws_DDiscardAO
-
- o Reduced latency between a sound ending, and its soundnum being set to 0
-
- o Moved all autodetect results from DLL-static to the DETECTRESULTS struct
-
-
- ******************************************************************************
- What's New for v1.22
- ******************************************************************************
-
- BUG FIXES
-
- o Fixed distortion in the 16-bit stereo to 8-bit mono conversion code
-
- o dws_Update no longer GPFs when called in the midst of dws_Kill (reentrancy)
-
- o Vastly reduced CPU usage with MWave drivers (lower latency and CPU overall)
-
- o DGetInfo and DSetInfo no longer reject dplay.flags = 0 for (used by Pascal)
-