Mercurial > hg > svcore
comparison base/System.h @ 29:8460b3bf8f04
* Implement play mute, level and pan controls and a layer visibility control
* Handle swapping the buffers in AudioCallbackPlaySource more gracefully, so
that in many cases it can be done inaudibly. Still gets it wrong when
playing in a noncontiguous selection.
* Fix to SV file save for non-2d sparse models
* Fixes to LED button drawing and AudioDial mouse functionality
* Add progress bar for Ogg file import
* Reshuffle PropertyContainer and its subclasses so it can be a QObject
* Add layer dormancy (invisible layer permitted to free its cache space)
* Optimisations to SpectrogramLayer, removing locks when reading/writing
individual pixels in the cache (should be unnecessary there) -- there's
still an issue here as we need a lock when reading from the model in
case the model is replaced, and we don't currently have one
* Several munlock() calls to make it harder to exhaust real memory if
running in an RT mode with mlockall() active
author | Chris Cannam |
---|---|
date | Fri, 17 Feb 2006 18:04:26 +0000 |
parents | d86891498eef |
children | 39ae3dee27b9 |
comparison
equal
deleted
inserted
replaced
28:4b16526b011b | 29:8460b3bf8f04 |
---|---|
15 #include <windows.h> | 15 #include <windows.h> |
16 #include <malloc.h> | 16 #include <malloc.h> |
17 | 17 |
18 #define MLOCK(a,b) 1 | 18 #define MLOCK(a,b) 1 |
19 #define MUNLOCK(a,b) 1 | 19 #define MUNLOCK(a,b) 1 |
20 #define MUNLOCK_SAMPLEBLOCK(a) 1 | |
20 | 21 |
21 #define DLOPEN(a,b) LoadLibrary((a).toStdWString().c_str()) | 22 #define DLOPEN(a,b) LoadLibrary((a).toStdWString().c_str()) |
22 #define DLSYM(a,b) GetProcAddress((HINSTANCE)(a),(b)) | 23 #define DLSYM(a,b) GetProcAddress((HINSTANCE)(a),(b)) |
23 #define DLCLOSE(a) FreeLibrary((HINSTANCE)(a)) | 24 #define DLCLOSE(a) FreeLibrary((HINSTANCE)(a)) |
24 #define DLERROR() "" | 25 #define DLERROR() "" |
33 | 34 |
34 #include <sys/mman.h> | 35 #include <sys/mman.h> |
35 #include <dlfcn.h> | 36 #include <dlfcn.h> |
36 | 37 |
37 #define MLOCK(a,b) ::mlock((a),(b)) | 38 #define MLOCK(a,b) ::mlock((a),(b)) |
38 #define MUNLOCK(a,b) ::munlock((a),(b)) | 39 #define MUNLOCK(a,b) (::munlock((a),(b)) ? (::perror("munlock failed"), 0) : 0) |
40 #define MUNLOCK_SAMPLEBLOCK(a) do { const float &b = *(a).begin(); MUNLOCK(&b, (a).capacity() * sizeof(float)); } while(0); | |
39 | 41 |
40 #define DLOPEN(a,b) dlopen((a).toStdString().c_str(),(b)) | 42 #define DLOPEN(a,b) dlopen((a).toStdString().c_str(),(b)) |
41 #define DLSYM(a,b) dlsym((a),(b)) | 43 #define DLSYM(a,b) dlsym((a),(b)) |
42 #define DLCLOSE(a) dlclose((a)) | 44 #define DLCLOSE(a) dlclose((a)) |
43 #define DLERROR() dlerror() | 45 #define DLERROR() dlerror() |