1.1.1
by Paul Brossier
Import upstream version 131 |
1 |
/* CHANGELOG FOR PORTMIDI |
2 |
* |
|
1.1.2
by Paul Brossier
Import upstream version 184 |
3 |
* 19Oct09 Roger Dannenberg |
4 |
* - Changes dynamic library names from portmidi_d to portmidi to |
|
5 |
* be backward-compatible with programs expecting a library by |
|
6 |
* the old name. |
|
7 |
* |
|
8 |
* 04Oct09 Roger Dannenberg |
|
9 |
* - Converted to using Cmake. |
|
10 |
* - Renamed static and dynamic library files to portmidi_s and portmidi_d |
|
11 |
* - Eliminated VC9 and VC8 files (went back to simply test.vcproj, etc., |
|
12 |
* use Cmake to switch from the provided VC9 files to VC8 or other) |
|
13 |
* - Many small changes to prepare for 64-bit architectures (but only |
|
14 |
* tested on 32-bit machines) |
|
15 |
* |
|
16 |
* 16Jun09 Roger Dannenberg |
|
17 |
* - Started using Microsoft Visual C++ Version 9 (Express). Converted |
|
18 |
* all *-VC9.vcproj file to *.vcproj and renamed old project files to |
|
19 |
* *-VC8.proj. Previously, output from VC9 went to special VC9 files, |
|
20 |
* that breaks any program or script looking for output in release or |
|
21 |
* debug files, so now both compiler version output to the same folders. |
|
22 |
* Now, debug version uses static linking with debug DLL runtime, and |
|
23 |
* release version uses static linking with statically linked runtime. |
|
24 |
* Converted to Inno Setup and worked on scripts to make things build |
|
25 |
* properly, especially pmdefaults. |
|
26 |
* |
|
1.1.1
by Paul Brossier
Import upstream version 131 |
27 |
* 02Jan09 Roger Dannenberg |
28 |
* - Created Java interface and wrote PmDefaults application to set |
|
29 |
* values for Pm_GetDefaultInputDeviceID() and |
|
30 |
* Pm_GetDefaultOutputDeviceID(). Other fixes. |
|
31 |
* |
|
32 |
* 19Jun08 Roger Dannenberg and Austin Sung |
|
33 |
* - Removed USE_DLL_FOR_CLEANUP -- Windows 2000 through Vista seem to be |
|
34 |
* fixed now, and can recover if MIDI ports are left open |
|
35 |
* - Various other minor patches |
|
36 |
* |
|
37 |
* 17Jan07 Roger Dannenberg |
|
38 |
* - Lots more help for Common Lisp user in pm_cl |
|
39 |
* - Minor fix to eliminate a compiler warning |
|
40 |
* - Went back to single library in OS X for both portmidi and porttime |
|
41 |
* |
|
42 |
* 16Jan07 Roger Dannenberg |
|
43 |
* - OOPS! fixed bug where short messages all had zero data |
|
44 |
* - Makefile.osx static library build now makes universal (i386 + ppc) |
|
45 |
* binaries |
|
46 |
* |
|
47 |
* 15Jan07 Roger Dannenberg |
|
48 |
* - multiple rewrites of sysex handling code to take care of |
|
49 |
* error-handling, embedded messages, message filtering, |
|
50 |
* driver bugs, and host limitations. |
|
51 |
* - fixed windows to use dwBufferLength rather than |
|
52 |
* dwBytesRecorded for long buffer output (fix by Nigel Brown) |
|
53 |
* - Win32 MME code always appends an extra zero to long buffer |
|
54 |
* output to work around a problem with earlier versions of Midi Yoke |
|
55 |
* - Added mm, a command line Midi Monitor to pm_test suite |
|
56 |
* - Revised copyright notice to match PortAudio/MIT license (requests |
|
57 |
* are moved out of the license proper and into a separate paragraph) |
|
58 |
* |
|
59 |
* 18Oct06 Roger Dannenberg |
|
60 |
* - replace FIFO in pmutil with Light Pipe-based multiprocessor-safe alg. |
|
61 |
* - replace FIFO in portmidi.c with PmQueue from pmutil |
|
62 |
* |
|
63 |
* 07Oct06 cpr & Roger Dannenberg |
|
64 |
* - overhaul of CoreMIDI input to handle running status and multiple |
|
65 |
* - messages per packet, with additional error detection |
|
66 |
* - added Leigh Smith and Rick Taube support for Common Lisp and |
|
67 |
* - dynamic link libraries in OSX |
|
68 |
* - initialize static global seq = NULL in pmlinuxalsa.c |
|
69 |
* |
|
70 |
* 05Sep06 Sebastien Frippiat |
|
71 |
* - check if (ALSA) seq exists before closing it in pm_linuxalsa_term() |
|
72 |
* |
|
73 |
* 05Sep06 Andreas Micheler and Cecilio |
|
74 |
* - fixed memory leak by freeing someo objects in pm_winmm_term() |
|
75 |
* - and another leak by freeing descriptors in Pm_Terminate() |
|
76 |
* |
|
77 |
* 23Aug06 RBD |
|
78 |
* - various minor fixes |
|
79 |
* |
|
80 |
* 04Nov05 Olivier Tristan |
|
81 |
* - changes to OS X to properly retrieve real device name on CoreMidi |
|
82 |
* |
|
83 |
* 19Jul05 Roger Dannenberg |
|
84 |
* - included pmBufferMaxSize in Pm_GetErrorText() |
|
85 |
* |
|
86 |
* 23Mar05 Torgier Strand Henriksen |
|
87 |
* - cleaner termination of porttime thread under Linux |
|
88 |
* |
|
89 |
* 15Nov04 Ben Allison |
|
90 |
* - sysex output now uses one buffer/message and reallocates buffer |
|
91 |
* - if needed |
|
92 |
* - filters expanded for many message types and channels |
|
93 |
* - detailed changes are as follows: |
|
94 |
* ------------- in pmwinmm.c -------------- |
|
95 |
* - new #define symbol: OUTPUT_BYTES_PER_BUFFER |
|
96 |
* - change SYSEX_BYTES_PER_BUFFER to 1024 |
|
97 |
* - added MIDIHDR_BUFFER_LENGTH(x) to correctly count midihdr buffer length |
|
98 |
* - change MIDIHDR_SIZE(x) to (MIDIHDR_BUFFER_LENGTH(x) + sizeof(MIDIHDR)) |
|
99 |
* - change allocate_buffer to use new MIDIHDR_BUFFER_LENGTH macro |
|
100 |
* - new macros for MIDIHDR_SYSEX_SIZE and MIDIHDR_SYSEX_BUFFER_LENGTH |
|
101 |
* - similar to above, but counts appropriately for sysex messages |
|
102 |
* - added the following members to midiwinmm_struct for sysex data: |
|
103 |
* - LPMIDIHDR *sysex_buffers; ** pool of buffers for sysex data ** |
|
104 |
* - int num_sysex_buffers; ** how many sysex buffers ** |
|
105 |
* - int next_sysex_buffer; ** index of next sysexbuffer to send ** |
|
106 |
* - HANDLE sysex_buffer_signal; ** to wait for free sysex buffer ** |
|
107 |
* - duplicated allocate_buffer, alocate_buffers and get_free_output_buffer |
|
108 |
* - into equivalent sysex_buffer form |
|
109 |
* - changed winmm_in_open to initialize new midiwinmm_struct members and |
|
110 |
* - to use the new allocate_sysex_buffer() function instead of |
|
111 |
* - allocate_buffer() |
|
112 |
* - changed winmm_out_open to initialize new members, create sysex buffer |
|
113 |
* - signal, and allocate 2 sysex buffers |
|
114 |
* - changed winmm_out_delete to free sysex buffers and shut down the sysex |
|
115 |
* - buffer signal |
|
116 |
* - create new function resize_sysex_buffer which resizes m->hdr to the |
|
117 |
* - passed size, and corrects the midiwinmm_struct accordingly. |
|
118 |
* - changed winmm_write_byte to use new resize_sysex_buffer function, |
|
119 |
* - if resize fails, write current buffer to output and continue |
|
120 |
* - changed winmm_out_callback to use buffer_signal or sysex_buffer_signal |
|
121 |
* - depending on which buffer was finished |
|
122 |
* ------------- in portmidi.h -------------- |
|
123 |
* - added pmBufferMaxSize to PmError to indicate that the buffer would be |
|
124 |
* - too large for the underlying API |
|
125 |
* - added additional filters |
|
126 |
* - added prototype, documentation, and helper macro for Pm_SetChannelMask |
|
127 |
* ------------- in portmidi.c -------------- |
|
128 |
* - added pm_status_filtered() and pm_realtime_filtered() functions to |
|
129 |
* separate filtering logic from buffer logic in pm_read_short |
|
130 |
* - added Pm_SetChannelMask function |
|
131 |
* - added pm_channel_filtered() function |
|
132 |
* ------------- in pminternal.h -------------- |
|
133 |
* - added member to PortMidiStream for channel mask |
|
134 |
* |
|
135 |
* 25May04 RBD |
|
136 |
* - removed support for MIDI THRU |
|
137 |
* - moved filtering from Pm_Read to pm_enqueue to avoid buffer ovfl |
|
138 |
* - extensive work on Mac OS X port, especially sysex and error handling |
|
139 |
* |
|
140 |
* 18May04 RBD |
|
141 |
* - removed side-effects from assert() calls. Now you can disable assert(). |
|
142 |
* - no longer check pm_hosterror everywhere, fixing a bug where an open |
|
143 |
* failure could cause a write not to work on a previously opened port |
|
144 |
* until you call Pm_GetHostErrorText(). |
|
145 |
* 16May04 RBD and Chris Roberts |
|
146 |
* - Some documentation wordsmithing in portmidi.h |
|
147 |
* - Dynamically allocate port descriptor structures |
|
148 |
* - Fixed parameter error in midiInPrepareBuffer and midiInAddBuffer. |
|
149 |
* |
|
150 |
* 09Oct03 RBD |
|
151 |
* - Changed Thru handling. Now the client does all the work and the client |
|
152 |
* must poll or read to keep thru messages flowing. |
|
153 |
* |
|
154 |
* 31May03 RBD |
|
155 |
* - Fixed various bugs. |
|
156 |
* - Added linux ALSA support with help from Clemens Ladisch |
|
157 |
* - Added Mac OS X support, implemented by Jon Parise, updated and |
|
158 |
* integrated by Andrew Zeldis and Zico Kolter |
|
159 |
* - Added latency program to build histogram of system latency using PortTime. |
|
160 |
* |
|
161 |
* 30Jun02 RBD Extensive rewrite of sysex handling. It works now. |
|
162 |
* Extensive reworking of error reporting and error text -- no |
|
163 |
* longer use dictionary call to delete data; instead, Pm_Open |
|
164 |
* and Pm_Close clean up before returning an error code, and |
|
165 |
* error text is saved in a system-independent location. |
|
166 |
* Wrote sysex.c to test sysex message handling. |
|
167 |
* |
|
168 |
* 15Jun02 BCT changes: |
|
169 |
* - Added pmHostError text handling. |
|
170 |
* - For robustness, check PortMidi stream args not NULL. |
|
171 |
* - Re-C-ANSI-fied code (changed many C++ comments to C style) |
|
172 |
* - Reorganized code in pmwinmm according to input/output functionality (made |
|
173 |
* cleanup handling easier to reason about) |
|
174 |
* - Fixed Pm_Write calls (portmidi.h says these should not return length but Pm_Error) |
|
175 |
* - Cleaned up memory handling (now system specific data deleted via dictionary |
|
176 |
* call in PortMidi, allows client to query host errors). |
|
177 |
* - Added explicit asserts to verify various aspects of pmwinmm implementation behaves as |
|
178 |
* logic implies it should. Specifically: verified callback routines not reentrant and |
|
179 |
* all verified status for all unchecked Win32 MMedia API calls perform successfully |
|
180 |
* - Moved portmidi initialization and clean-up routines into DLL to fix Win32 MMedia API |
|
181 |
* bug (i.e. if devices not explicitly closed, must reboot to debug application further). |
|
182 |
* With this change, clients no longer need explicitly call Pm_Initialize, Pm_Terminate, or |
|
183 |
* explicitly Pm_Close open devices when using WinMM version of PortMidi. |
|
184 |
* |
|
185 |
* 23Jan02 RBD Fixed bug in pmwinmm.c thru handling |
|
186 |
* |
|
187 |
* 21Jan02 RBD Added tests in Pm_OpenInput() and Pm_OpenOutput() to prevent |
|
188 |
* opening an input as output and vice versa. |
|
189 |
* Added comments and documentation. |
|
190 |
* Implemented Pm_Terminate(). |
|
191 |
* |
|
192 |
*/ |