-
-
Notifications
You must be signed in to change notification settings - Fork 2
/
CHANGELOG
304 lines (266 loc) · 13.4 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
*******************************************************************************
* RECENT CHANGES
*******************************************************************************
=== 1.0.25 ===
* Updated build scripts.
* Updated module versions in dependencies.
=== 1.0.24 ===
* Added system::get_user_login() function.
* Fixed io::Path::canonicalize() crashes on several input data.
* Added index_of_nocase and rindex_of_nocase methods for LSPString.
* Added io::OutMemoryStream::position() method implementation.
* Another implementation of ipc::SharedMutex for POSIX systems that allows to
avoid dead locks when the application that locked the mutex has been
terminated.
* Updated build scripts.
* Updated module versions in dependencies.
=== 1.0.23 ===
* Implemented IInSequence::sink() method for writing all content to another IOutSequence.
* Fixed possible access to uninitialized memory when loading built-in resources.
* Added Thread::yield() method.
* Updated build scripts.
* Updated module versions in dependencies.
=== 1.0.22 ===
* Implemented system::page_size() and system::system_cores() functions.
* Extended ipc::SharedMem interface.
* Implemented UUID generation and formatting header.
* Updated module versions in dependencies.
=== 1.0.21 ===
* Fixed reading of 32-bit FLOAT WAV files that do not contain fact chunk on Windows.
* Implemented min(), max(), rms() and avg() builtin functions for expression language.
* Implemented io::Path::final_path method for obtaining the final file system object
the abstract path points to.
* Implemented ipc::SharedMem primitive for organizing shared memory segments.
* Implemented ipc::SharedMutex primitive for organizing global inter-process mutexes.
* Implementeation of ipc::Mutex moved to critical section for Windows.
* Updated module versions in dependencies.
=== 1.0.20 ===
* More detailed MIDI specification (added MIDI_CHANNELS constant).
* Additional methods for converting between UTF-8, UTF-16 and UTF-32.
* Added support of real-time nesting of ipc::IExecutor.
* Added support of custom functions in the expression language.
* Enhanced JSON serializer interface with new functions.
* Updated build scripts.
* Updated module versions in dependencies.
=== 1.0.19 ===
* Optimized expression variables access.
* Many code updates that could cause potential problems related to using another
decimal point for floating-point number formatting.
* Updated build scripts.
* Updated module versions in dependencies.
=== 1.0.18 ===
* Updated module versions in dependencies.
=== 1.0.17 ===
* Fixed several issues reported by PVS Studio static analyzer.
* Fixed invalid memory read on OSC protocol pattern matching.
* The i18n JsonDictionary is forced to be UTF-8.
* Updated module versions in dependencies.
=== 1.0.16 ===
* Fixed potential problem with invalid delete in io::PathPattern.
* Updated build scripts.
* Updated module versions in dependencies.
=== 1.0.15 ===
* Extended expression language with basic mathematic functions.
* Updated build scripts.
* Updated module versions in dependencies.
=== 1.0.14 ===
* Fixed improper expression parsing under certain conditions.
* Removed Makefile.d. Dependencies are now automatically generated at the build stage.
* Updated build scripts.
* Updated module versions in dependencies.
=== 1.0.13 ===
* Updated module versions in dependencies.
=== 1.0.12 ===
* Updated the implementation of io::StdioFile::size() method for Windows.
* Fixed ipc::Library::get_module_file function for Windows.
* Added test build for Windows using MSYS2.
* Added lsp::to_lower and lsp::to_upper character conversion routines
(system locale independent support of Latin and Cyrillic characters).
* Implemented io::InSharedMemoryStream class for shared access to the data.
* Deprecated io::IOutStream::writeb() function, use io::IOutStream::write_byte() instead.
* Added possibility to create temporary files for io::NativeFile and io::OutFileStream.
* The io::InMemoryStream::take() now releases data associated with io::OutMemoryStream.
* Added possibility to attach automatically managed user data to mm::IInAudioStream
and mm::IOutAudioStream.
* Added support of SFZ file format parsing.
* Updated build scripts.
* Updated module versions in dependencies.
=== 1.0.11 ===
* Added io::InMemoryStream::size() method for obtaining the size of the wrapped buffer.
* Additional expr::Expression::parse() method that takes UTF-8 strings at input.
* Added expr::EnvResolver variable resolver that reads environment variables.
* Added io::Path::get_noext() and io::Path::get_last_noext().
=== 1.0.10 ===
* Fixed bug in io::Path::as_relative() call.
* Fixed bug in lspc::AudioWriter::write_frames() method.
* Added lspc::IAudioFormatSelector interface class for selecting audio format
when writing to LSPC file.
* Added several utility functions for easier work with LSPC file format.
* Fixed bug related to reading audio files with 24-bit audio format under Windows.
* Added empty key support in the i18n dictionary configuration file.
* Updated build scripts.
=== 1.0.9 ===
* Updated build scripts.
=== 1.0.8 ===
* Fixed improper export definitions (typo in macro).
=== 1.0.7 ===
* Added system::get_time_millis() function.
* Got rid of the <windows.h> plague header in header files.
* Fixed integer overflow in system::time_t data structure for 32-bit systems
by extending the size of seconds field up to 64 bit.
* Added system::get_volume_info() and system:: free_volume_info() functions
for obtaining list of mounted volumes in the system.
* Added URL-decoding of the name of the link for QT5 bookmarks.
* Fixed improper size tracking in io::OutMemoryStream::writeb() method.
* Fixed several bugs in LSPString class implementation.
* Added support of reading *.lnk files as bookmarks.
* Fixed memory leakage in lsp::obj::PullParser::wrap() method.
* Fixed bug in io::Path::canonicalize() method that could issue reads outside
of allocated memory.
* Fixed improper usage of sf_open function of libsndfile in mm::InAudioFileStream.
* Updated build scripts.
=== 1.0.6 ===
* Added opacity manipulation to the lsp::Color class.
* Added LSPString::range_length() method to compute the length of the range.
* Added LSPString::to_unix() and LSPString::to_dos() line ending conversion routines.
* Fixed LSPString::prepend_utf8() function.
* Updated build scripts.
=== 1.0.5 ===
* Updated PrefixLoader interface and implementation.
* Fixed the improper use of nanosleep when introducing the sleep function.
* Fixed bug in path matching algorithm for io::PathPattern class.
* Better handling of error codes for files under Windows platform.
* Fixed failed case for ipc::Process launching algorithm under Windows platform.
* Fixed LSPString behaviour related to call of get_native() method for empty string.
* Fixed bug in io::Dir::reads() method for Windows platform that returned invalid
file attributes.
* Updated build scripts.
=== 1.0.4 ===
* Updated build scripts.
=== 1.0.3 ===
* Updated grammar in several text comments.
* Added system::sleep_msec function for millisecond-precise sleeps.
* Fixed typo in Wavefront Object File Format name.
* Renamed method OutBitStream::writeb to OutBitStream::bwrite to not to clash with
the parent IOutStream class.
* Added LSPString::ends_with_ascii and LSPString::ends_with_ascii_nocase methods.
=== 1.0.2 ===
* Updated build scripts.
=== 1.0.1 ===
* Better support of RoomEqWizard ill-formed files.
=== 1.0.0 ===
* Improved expr::format functions: extended format specifiers.
* Refactoring of the lsp::Color utility class interface.
* Added support of XYZ color space by the lsp::Color utility class.
* Added support of CIE LAB D65 color space by the lsp::Color utility class.
* Added support of CIE LCH D65 color space by the lsp::Color utility class.
* Added support of CMYK color space by the lsp::Color utility class.
* Added support of function-look color parsing by the lsp::Color utility class.
* Color::scale_lightness renamed to Color::scale_hsl_lightness, added Color::scale_lch_luminance.
* The fields of system::time_t structure are now of signed type.
* Added overloaded implementation of Serializer::write_blob function.
* fmt::config now delegates db parameter conversion to caller code.
* Fixed Path::is_reg() method implementation for POSIX-based systems.
* Fixed bug in the resource::Compressor and resource::Decompressor classes which could cause
file corruption at decompression stage.
* Reduced size of fields for resource::raw_resource_t structure.
* Fixed bug in Wavefront OBJ file parser: the locale of the file always should be considered to be C.
=== 0.5.10 ===
* Added support of boolean parameters by the configuration parser.
* Added resource::PrefixLoader resource loader implementation.
* Added supplementary methods to the configuration parameters.
* Refactored the lsp::Color class: less inline code, more flexible methods.
* Fixed bug in fmt::obj::PushParser class behaviour.
=== 0.5.9 ===
* Several fixes for resource compressor.
* Removed fdatasync() call for io::NativeFile::flush method.
* Added system::get_current_dir() function.
* Added support of IOutStream::writeb() function.
* Added system::follow_url() functions to follow the specified URL.
* Fixed IDictionary::lookup() behaviour related to dictionaries.
* Added boolean parameter output support to the config::Serializer class.
=== 0.5.8 ===
* Added support of DOM parsing and serializing for JSON files.
* Added io::File::copy methods for copying files.
* Added io::Path::mkparent methods for creating parent directories.
* Added io::File::mkparent methods for creating parent directories.
* Added io::Path::get_first, io::Path::remove_first, io::Path::pop_first, io::Path::pop_last methods.
* Added io::OutBitStream class for manipulating output bit streams.
* Added io::InBitStream class for manipulating input bit streams.
* Added io::Path::clone, io::Path::compare_to and io::Path::hash methods for collection purposes.
* Added argument check for NULL for lspc::File class methods.
* Fixed character set encoding bugs for several systems that have limited libiconv.
* Added clear() and reduce() methods for io::OutMemoryStream.
* Implemented builtin resource compressor.
* Implemented builtin resource decompressor.
=== 0.5.7 ===
* Added system::get_localtime function.
* Refactored test directory tree.
* Added instrumentComponent tag support for Hydrogen.
* Added io::Path::rename and io::File::rename functions.
* Added mark() and reset() methods to io::IInSequence interface.
* Added support of mark() and reset() methods by io::InStringSequence class.
* Added io::InMarkSequence class to allow mark() and reset() for input data.
* Fixed bug in io::InStringSequence::read method which could overflow
the output buffer.
* Added get_ext() and get_noext() methods to the io::Path class.
=== 0.5.6 ===
* Updated build (better support for BSD systems).
* Fixed clang warnings.
* Added set_native method to io::Path.
=== 0.5.5 ===
* Added support of color parsing by expr::Tokenizer when using expr::TF_COLOR flag.
* Added new token types: expr::TT_SHARP and expr::TT_AT.
* Added Color::swap method.
* Better work with vfork() system call.
* Added io::PathPattern class for file name matching.
* Added remove_root method to io::Path class.
* Added resource::ILoader class that allows to access resources stored in some
location (not only file system).
* Added resource::DirLoader class that allows access resources stored in some
directory and it's subdirectories.
* Added resource::Environment class that allows to map key<->value string pairs.
* Added support of resource::ILoader by i18n::Dictionary class when loading JSON
files.
* Added methods Path::is_dot(), Path::is_dotdot(), Path::is_dots().
* Optimized methods Path::is_dot() and Path::is_dotdot().
* Added methods Path::valid_file_name() and Path::valid_path_name().
* Fixed bug in Path::remove_last() method.
* Fixed RGB to HSL conversion in Color class.
=== 0.5.4 ===
* Updated LSPString lltl specifier to match lltl-lib 0.5.3.
* Updated build files to support static library builds.
* Updated license files to better conform LGPL3+ license.
* Updated build scripts that now use tags without prefixes first.
* Updated headers and license files to match LGPL3+ license.
* Updated make files to produce static library, pkgconf file and source tree.
=== 0.5.3 ===
* Added system::get_temporary_dir() functions.
* Added support of Hydrogen drumkit XML file format.
* Better compatibility with old gcc, glibc and libsndfile.
* Replaced pthread_yield() with sched_yield() calls in mutexes.
=== 0.5.2 ===
* Added i18n support.
* Updated swap functions for expr::Parameters and LSPString.
* Implemented additional parsing methods to the lsp::Color class.
* Added unit tests for LSPString and Color classes.
* Renamed invalid resolve_entity() method to set_value() method for xml::PullParser.
* Added TT_COMMA token to expr:Tokenizer.
* Added support of TF_XKEYWORDS flag by expr:Tokenizer which allows to interpret
keywords as barewords.
* Changed bug in UTF-16 decoding of surrogate pairs.
* Improved JSON serialization to match standard.
=== 0.5.1 ===
* Added Color class.
* Added 'valid_library_name' routines to ipc::Library class for library
name validation.
=== 0.5.0 ===
* Initial release.
* Core runtime modules.
* Support of simple built-in expression language interpreter.
* Support of different file formats.
* Basic OS-independent I/O abstraction layer support.
* OS-independend character set conversion layer support.
* OS-independend Inter-process communication (IPC) primitives.
* Basic multimedia (MM) streaming primitives.
* Different musical protocol support.