1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2024-09-09 14:46:34 -04:00
Commit Graph

291 Commits

Author SHA1 Message Date
f4exb
ef65afea02 Replace separate create channel methods (BS and CS): common plugins 2020-10-04 22:16:09 +02:00
f4exb
7917d595f5 Demods with audio: systematically reapply audio sample rate in case of channel sample rate change 2020-08-03 13:00:00 +02:00
f4exb
c41cf68d60 Demod plugins with configurable audio: fixed audio sample rate handling 2020-08-03 12:59:31 +02:00
f4exb
a4a16265a3 Updated version and changelogs 2020-07-01 20:22:41 +02:00
f4exb
b64e41419f Add 10 MHz digit to wideband channel plugins. Implements #531 2020-07-01 19:53:09 +02:00
f4exb
a8969af144 Updated plugins version 2020-05-16 08:15:47 +02:00
f4exb
a125ab02cf GLSpectrumGUI: removed reference to message queue in setBuddies method 2020-05-15 23:27:39 +02:00
f4exb
7d6d351891 SpectrumVis: removed message queue parameter from configure method 2020-05-15 23:22:34 +02:00
f4exb
4d9d804f97 Websocket spectrum: adapted plugins (missing bits) 2020-05-15 23:14:19 +02:00
f4exb
9945c6a8f8 Websocket spectrum: adapted plugins 2020-05-15 22:57:09 +02:00
f4exb
ac6c3b08f2 Websocket spectrum: first implementation 2020-05-15 22:49:35 +02:00
f4exb
fb8a1f9df9 BFM demod: added initialization of message to GUI address 2020-03-29 00:02:54 +01:00
f4exb
c473c31035 BFM demod: fixed message to GUI initialization in baseband class. Fixes #469 2020-01-25 03:43:55 +01:00
f4exb
6855602a7f Device API: removed useless stream index parameter on channel API methods 2019-12-23 23:41:44 +01:00
f4exb
d0858f21fb Added possibility to specify devices that cannot be discovered automatically. This implements #445 2019-12-16 01:03:47 +01:00
f4exb
653f8c1330 Renamed DownSampleChannelizer back to (new) DownChannelizer 2019-12-13 15:15:21 +01:00
f4exb
14a21b10cb Removed obsolete references to DownChannelizr 2019-12-13 00:43:07 +01:00
f4exb
1359aac9b6 Removed ThreadedBasebandSampleSink 2019-12-13 00:42:37 +01:00
f4exb
735f1cdbb4 Rx plugins: refactoring of classes (2) 2019-12-04 07:20:05 +01:00
f4exb
246ff824af Corrected network manager process memory leaks (Rx side) 2019-11-12 18:46:45 +01:00
f4exb
51a07c3f7b Channel Rx plugins: implement MIMO support 2019-10-09 07:39:52 +02:00
f4exb
a88556d6f6 REST API: config: GET (13): corrected missing return in deserialize methods of the adapters 2019-08-05 03:42:04 +02:00
f4exb
4b3d088407 GLSpectrum settings refactoring (1) 2019-08-05 01:56:29 +02:00
f4exb
7688f187bc REST API: config: use specialized ChannelWebAPIAdapter class similar to what has been done for devices 2019-08-05 00:10:56 +02:00
f4exb
a4007b762e REST API: config: (6): config preset channel Rx adapters 2019-08-03 01:05:16 +02:00
f4exb
2274d20856 REST API: config: GET (5): all API supported channels refactoring to use static methods for settings GET. PUT. PATCH 2019-08-03 01:05:16 +02:00
f4exb
ef82b89182 REST API: config: GET (4): optimize channel settings API management and generally improve constedness 2019-08-03 01:05:16 +02:00
Martin Hauke
a1548333a7 Fix some typos 2019-07-22 23:14:23 +02:00
Davide Gerhard
2e04d2fe9d
fix windows code to build with MSVC
- remove __attribute__((unused)) not supported on MSVC
- remove  __attribute((unused)) not supported on MSVC
- add symbol exports to RemoteDataReadQueue and RemoteDataQueue
- add export symbols to sdrsrv
2019-05-28 15:19:19 +02:00
Davide Gerhard
94d03f9004
remove useless CMAKE_CURRENT_BINARY_DIR 2019-05-21 20:19:30 +02:00
Davide Gerhard
23498ab24b
manage "correctly" plugins/pluginssrv folders 2019-05-21 20:19:25 +02:00
Davide Gerhard
dcfb7f6c97
cmake: full refactor to remove qmake and use cmake on all platforms 2019-05-21 20:19:25 +02:00
Davide Gerhard
fd642496b8
remove qmake project files
move to cmake only building system
2019-05-21 20:19:18 +02:00
f4exb
7e128335f1 Propagate change to channel UIs 2019-05-09 21:07:05 +02:00
f4exb
a5e9f251ef Single channel API 2019-05-09 17:27:12 +02:00
f4exb
9e628917dc Removed all obsolete references to devicesourceapi.h and devicesinkapi.h 2019-05-09 12:10:27 +02:00
f4exb
89e53cf179 Single DeviceAPI interface (1) 2019-05-08 22:11:53 +02:00
f4exb
54e46837dd REST API: changed binary tx parameter to ternary direction parameter (0: rx, 1: tx, 2: any) 2019-05-07 14:43:38 +02:00
f4exb
d504b060f9 REST API: added missing bits in some modulators and demodulators for reverse API 2019-04-20 19:53:16 +02:00
f4exb
ef15157a50 Fixed incomplete copyright headers (1) 2019-04-11 06:39:30 +02:00
f4exb
4e4d293e01 Reverse API originator information: implemented in all channel Rx plugins 2019-03-25 13:53:48 +01:00
f4exb
66efc10006 Merge branch 'dev' 2018-12-28 11:08:44 +01:00
ZigaS
b743943c70 Update to Qt 5.12.0.
Project files with MacOS clang RPATH to use proper paths for shared objects.
Minor path updates in favor of loading plugin libs.
Deployment script packaging using Qt way(macdeployqt).
2018-12-27 09:48:30 +01:00
f4exb
d13fb41927 Reverse API: channels: updated plugin versions 2018-12-24 14:52:53 +01:00
f4exb
98ae61f4e0 Reverse API: BFM demod 2018-12-22 07:16:15 +01:00
f4exb
2e58818776 Reverse API: right click dialog on start/stop button. Apply to RTL-SDR 2018-12-17 00:34:14 +01:00
f4exb
0e75cc3709 Wndows builds: removed reference to now obsolete MinGW64 toolchain 2018-12-14 17:49:06 +01:00
f4exb
4a69a7d39f Adaptation of cmake files to MSVC 2018-12-02 03:06:04 +01:00
f4exb
98a193e591 BFM demod: fixed iterator in RDS parser 2018-11-13 16:01:33 +01:00
f4exb
1dc466e604 Windows: MSVC2017: adapt channel analyzer, AM and ATV demods plugin modules 2018-11-13 16:02:26 +01:00
f4exb
dc2f25a00b Windows: MSVC2017: fixed more attribute unused cases (1) 2018-11-13 00:45:03 +01:00
f4exb
5771ef4783 Foolproof AudioFifo to try fix issue #210. Consequently removed useless timeout parameter on read and write methods 2018-09-12 15:30:53 +02:00
f4exb
f58cc3cc07 Renamed UDPSink to UDPSource 2018-09-11 22:36:16 +02:00
f4exb
f368c62329 Fixed power display going to floor value in some demods 2018-08-05 12:44:06 +02:00
Edouard GRIFFITHS
ea83e43d09 New Windows build 2018-07-11 18:05:05 +02:00
f4exb
d5f153ff75 Spectrum: added log/linear control 2018-07-04 23:11:28 +02:00
f4exb
5e1699c981 Bumped plugins version 2018-07-02 02:37:56 +02:00
f4exb
56e49baa3b Spectrum averaging: fixed average (1) 2018-07-01 02:16:59 +02:00
f4exb
e9658e0346 Spectrum averaging (2): moving average 2018-06-30 22:30:42 +02:00
f4exb
1eb8716a9f Fixes for Arch. Manual merge of pull request #183. DATV demod: fixed some of ffmpeg deprecation warnings 2018-06-13 00:20:51 +02:00
f4exb
f76fafe826 Windows build fix 2018-06-10 12:17:26 +02:00
f4exb
1770192116 Server: added WFM demod plugin 2018-05-29 11:14:24 +02:00
f4exb
c31a34ea41 BFM demod: code cosmetic changes 2018-05-29 10:59:30 +02:00
f4exb
f11cda633d BFM demod: fixed squelch to be compatible with server mode 2018-05-29 00:14:45 +02:00
f4exb
a8966789c0 Server: added BFM demod plugin 2018-05-28 11:52:24 +02:00
f4exb
e27ca22c86 BFM demod: fixed report mapper 2018-05-28 11:43:24 +02:00
f4exb
0c328546b0 WFM demod: implemeted WEB API 2018-05-25 10:08:47 +02:00
f4exb
c961fa368d Web API: fixes in BFM demod and HackRF input 2018-05-25 02:02:21 +02:00
f4exb
72e58534e3 Web API: BFM and DSD demod fixes. SSB demod: change clipping limiter constants 2018-05-24 18:23:08 +02:00
f4exb
8d7b581879 BFM demod: implemeted WEB API 2018-05-23 14:56:29 +02:00
beta-tester
8dca2d7b28 uniformed date format in Broadcast FM Demod 2018-05-11 11:35:10 +02:00
f4exb
c43ecc8afe Channel Rx plugins: use liberation font 2018-05-05 18:12:05 +02:00
f4exb
e206d65283
Merge pull request #162 from jigpu/spelling-fixes
Spelling fixes
2018-04-22 07:45:20 +02:00
f4exb
a099b05fb6
Merge pull request #164 from jigpu/memleak-fixes
Memleak fixes
2018-04-22 07:40:58 +02:00
Jason Gerecke
1eaae0de30 BFM demod: Delete the SpectrumVis when destroying BFMDemodGUI
Take care of a pair of memory leaks that occur when the BFM demod GUI
is closed.

==786== 19,952 (24 direct, 19,928 indirect) bytes in 1 blocks are definitely lost in loss record 7,065 of 7,081
==786==    at 0x4C2D54F: operator new(unsigned long) (vg_replace_malloc.c:334)
==786==    by 0x54C82ED: allocate (new_allocator.h:111)
==786==    by 0x54C82ED: allocate (alloc_traits.h:436)
==786==    by 0x54C82ED: _M_get_node (stl_list.h:383)
==786==    by 0x54C82ED: _M_create_node<FFTWEngine::Plan* const&> (stl_list.h:572)
==786==    by 0x54C82ED: _M_insert<FFTWEngine::Plan* const&> (stl_list.h:1801)
==786==    by 0x54C82ED: push_back (stl_list.h:1118)
==786==    by 0x54C82ED: FFTWEngine::configure(int, bool) (fftwengine.cpp:35)
==786==    by 0x4F4590B: SpectrumVis::handleConfigure(int, int, FFTWindow::Function) (spectrumvis.cpp:206)
==786==    by 0x4F459EE: SpectrumVis::handleMessage(Message const&) (spectrumvis.cpp:170)
==786==    by 0x548346C: BasebandSampleSink::handleInputMessages() (basebandsamplesink.cpp:21)
==786==    by 0x69E1615: QMetaObject::activate(QObject*, int, int, void**) (in /usr/lib/libQt5Core.so.5.10.1)
==786==    by 0x5497D4B: MessageQueue::push(Message*, bool) (messagequeue.cpp:52)
==786==    by 0x33F9D61A: BFMDemodGUI::BFMDemodGUI(PluginAPI*, DeviceUISet*, BasebandSampleSink*, QWidget*) (bfmdemodgui.cpp:352)
==786==    by 0x33F9D985: BFMDemodGUI::create(PluginAPI*, DeviceUISet*, BasebandSampleSink*) (bfmdemodgui.cpp:50)
==786==    by 0x33FB035D: non-virtual thunk to BFMPlugin::createRxChannelGUI(DeviceUISet*, BasebandSampleSink*) (bfmplugin.cpp:57)
==786==    by 0x4F47F19: DeviceUISet::loadRxChannelSettings(Preset const*, PluginAPI*) (deviceuiset.cpp:201)
==786==    by 0x4EA51EA: MainWindow::loadPresetSettings(Preset const*, int) (mainwindow.cpp:575)
==786==    by 0x4EAC81B: MainWindow::MainWindow(qtwebapp::LoggerWithFile*, MainParser const&, QWidget*) (mainwindow.cpp:176)
==786==    by 0x10A49B: runQtApplication(int, char**, qtwebapp::LoggerWithFile*) (main.cpp:120)
==786==    by 0x109B38: main (main.cpp:131)
==786==
==786== 54,096 (112 direct, 53,984 indirect) bytes in 1 blocks are definitely lost in loss record 7,075 of 7,081
==786==    at 0x4C2D54F: operator new(unsigned long) (vg_replace_malloc.c:334)
==786==    by 0x69E9162: QObject::QObject(QObject*) (in /usr/lib/libQt5Core.so.5.10.1)
==786==    by 0x5497BEE: MessageQueue::MessageQueue(QObject*) (messagequeue.cpp:26)
==786==    by 0x54834FF: BasebandSampleSink::BasebandSampleSink() (basebandsamplesink.cpp:6)
==786==    by 0x4F45A29: SpectrumVis::SpectrumVis(float, GLSpectrum*) (spectrumvis.cpp:26)
==786==    by 0x33F9D53C: BFMDemodGUI::BFMDemodGUI(PluginAPI*, DeviceUISet*, BasebandSampleSink*, QWidget*) (bfmdemodgui.cpp:342)
==786==    by 0x33F9D985: BFMDemodGUI::create(PluginAPI*, DeviceUISet*, BasebandSampleSink*) (bfmdemodgui.cpp:50)
==786==    by 0x33FB035D: non-virtual thunk to BFMPlugin::createRxChannelGUI(DeviceUISet*, BasebandSampleSink*) (bfmplugin.cpp:57)
==786==    by 0x4F47F19: DeviceUISet::loadRxChannelSettings(Preset const*, PluginAPI*) (deviceuiset.cpp:201)
==786==    by 0x4EA51EA: MainWindow::loadPresetSettings(Preset const*, int) (mainwindow.cpp:575)
==786==    by 0x4EAC81B: MainWindow::MainWindow(qtwebapp::LoggerWithFile*, MainParser const&, QWidget*) (mainwindow.cpp:176)
==786==    by 0x10A49B: runQtApplication(int, char**, qtwebapp::LoggerWithFile*) (main.cpp:120)
==786==    by 0x109B38: main (main.cpp:131)
2018-04-21 18:56:21 -07:00
Jason Gerecke
141997475c BFM demod: RDS demod: Initialize RDSDemod array elements
The m_parms.tot_errs array is not initialized prior to its first use
in the RDSDemod::biphase function. ASAN does not pick up on this
directly, but instead reports it as follows (note that ASAN fills
memory with 0xBE and -1094795586 is 0xBEBEBEBE):

    ./plugins/channelrx/demodbfm/rdsdemod.cpp:159:95: runtime error: signed
    integer overflow: -1094795586 + -1094795586 cannot be represented in type
    'int'

The m_parms.subcarr_bb array does not appear to be read prior to
initialization, but we initialize it to zero anyway for the sake
of good hygiene.
2018-04-21 18:54:19 -07:00
Jason Gerecke
f6ea7b216e Fix spelling errors present in UI files 2018-04-21 18:44:54 -07:00
f4exb
5c51297717 Moved FFT filter destruction at end of the mod or demod destructor 2018-04-18 22:20:47 +02:00
f4exb
01798c9d15 BFM demod: RDS parser: fixed compiler warning 2018-04-15 22:03:31 +02:00
f4exb
a37443fe58 BFM demod: bumped version 2018-04-12 00:13:40 +02:00
f4exb
2d0e0290a0 BFM demod: fixed RDS parser bug when processing optional content (issue #157) 2018-04-12 00:12:51 +02:00
f4exb
8dfdc1086c PVS-Studio static analysis corrections (4) 2018-04-04 23:39:31 +02:00
f4exb
53beb8a92d Removed UDP address and port from Channel marker 2018-03-30 19:06:27 +02:00
f4exb
3b882e78b4 BFM demod: removed UDP/RTP copy audio entirely 2018-03-28 09:43:33 +02:00
f4exb
44b4b3cc85 Multiple audio support: WFM demodulator 2018-03-28 07:44:54 +02:00
f4exb
ae0470218c Multiple audio support: BFM demodulator 2018-03-27 23:57:29 +02:00
f4exb
ebf3b1fc4b RTP fixes 2018-03-27 09:04:10 +02:00
f4exb
6f8d546ab7 BFM demod: removed copy to UDP/RTP 2018-03-27 00:30:21 +02:00
f4exb
745e187e2b Multiple audio support: extend audio output information to UDP/RTP information. New audio preferences dialog 2018-03-25 11:50:34 +02:00
f4exb
7aaa230eb4 Multiple audio support: added ability to manage more than one audio output 2018-03-24 23:50:28 +01:00
f4exb
15e62814de Multiple audio support: removed audio methods from DSP engine and use AudioDeviceManager instead 2018-03-24 03:36:49 +01:00
f4exb
170c59de43 Channel Rx demods: in constructor make sure the thread is launched when all members have been properly initialized (i.e. do it last) 2018-03-16 10:24:19 +01:00
f4exb
b2e446afcc Windows build: new location for export header 2018-03-10 20:32:46 +01:00
f4exb
dc9cb0463f BFM demod: implement RTP over UDP for audio copy 2018-03-10 07:03:11 +01:00
f4exb
28e9df5fe8 Clang clean compile 2018-03-04 01:47:51 +01:00
f4exb
2e5cfcafee PVS-Studio static analysis corrections (3) issue #137 2018-02-24 10:29:27 +01:00
f4exb
2b846f5d28 PVS-Studio static analysis corrections (2) issue #137 2018-02-22 03:04:42 +01:00
f4exb
67e664ef06 Fixed memory leak with handling of DSPSignalNotification message in modulators and demodulators. Removed reference to unused PIDController class 2018-02-14 20:11:36 +01:00
f4exb
0d2c0ca117 Revert "BFM demod: implemented use RTP protocol for audio over UDP"
This reverts commit d946ceffc8.
2018-02-06 01:18:13 +01:00
f4exb
dda124f1fb Revert "AM, BFM demods: use button switch for RTP switch"
This reverts commit 2ee3161b50.
2018-02-06 01:17:52 +01:00
f4exb
2ee3161b50 AM, BFM demods: use button switch for RTP switch 2018-02-05 18:25:31 +01:00
f4exb
d946ceffc8 BFM demod: implemented use RTP protocol for audio over UDP 2018-02-05 18:19:32 +01:00
f4exb
b0a97510e2 Moving average cleanup 2018-02-03 10:33:02 +01:00
f4exb
a47587e16f Specify Scope and Spectrum Vis floating point sample scale 2018-01-22 14:07:24 +01:00
f4exb
2ddcb8c358 Differentiate Rx and Tx DSP sample sizes 2018-01-22 08:46:05 +01:00
f4exb
491b8a6d33 Replaced hardcoded bit scaling literals by defines 2018-01-21 10:57:04 +01:00
f4exb
bde2f3447e BFM demod: fixed pilot power GUI display 2018-01-13 04:04:34 +01:00
f4exb
6885dd1fe6 All concerned demods: call applyChannelSettings with force=true at construction and start. 2018-01-09 00:59:10 +01:00
f4exb
0c39c9dfd3 BFM demod: RDSTMC: use char* instead of std::string for constant array 2017-12-31 11:54:56 +01:00
f4exb
ffa24cde9b BFM demod: RDSTMC: specify 0 value in array initialization 2017-12-31 11:45:47 +01:00
f4exb
723df69943 BFM and DSD demod: gcc7 warnings fixes 2017-12-31 03:16:30 +01:00
f4exb
3f96ce4187 BFM demod: set -fno-var-tracking-assignments for rdstmc.cpp as it makes compilation very busy and memory hungry for nothing. May fix compilation on RPi3 2017-12-31 02:14:46 +01:00
f4exb
d476736487 Demods : use specific method to apply channelizer sample rate and frequency offset changes. Separate this data from settings 2017-12-29 11:04:47 +01:00
f4exb
e39e080cc0 Channel source/sink APIs: removed useless getDeltaFrequency pure virtual method 2017-12-29 05:22:26 +01:00
f4exb
324aaa86b6 Plugins: cppcheck corrections 2017-12-29 03:22:04 +01:00
f4exb
31aacc9571 Plugin interface: simplify createRxChannelGUI 2017-12-23 10:32:02 +01:00
f4exb
703aa21159 Plugin interface: simplify createRxChannel 2017-12-23 09:54:42 +01:00
f4exb
514e408aac Server: Web API: /sdrangel/deviceset/{deviceSetIndex}/channel POST implementation and rework in the PluginInterface 2017-12-23 05:56:40 +01:00
f4exb
9dd707896d Use a name field in channels to be used in headless version to replace the GUI object name that was used as the name field 2017-12-20 23:57:06 +01:00
f4exb
e1ad61d692 Bumped version of all channel plugins 2017-12-18 00:06:01 +01:00
f4exb
6d12443100 Server: changes to support DeviceSet 2017-12-17 23:15:42 +01:00
f4exb
02e0945368 Web API: implemented /sdrangel/channels: Get a list of channel plugins available in this instance 2017-11-23 01:19:32 +01:00
f4exb
dc50ba1249 Web API: report Rx channel info summary 2017-11-19 18:18:17 +01:00
f4exb
b91ad7c4b7 Web API: added channel enumeration in /sdrangel GET. Partial implementation in channel plugins 2017-11-19 03:38:07 +01:00
f4exb
3db655fe61 Highlight demod frame when the marker is highlighted on the spectrum 2017-11-14 22:58:35 +01:00
f4exb
f6337e4597 Bumped version to 3.8.4 2017-11-14 01:50:14 +01:00
f4exb
a182656294 BFM Demod: applied new channel marker signal handling 2017-11-14 01:23:01 +01:00
f4exb
8958edd4be BFM demod: fixed spectrum gui update when channel sample rate changes 2017-11-12 14:58:52 +01:00
f4exb
c4e26bf66d Rx channel plugins: use the demodulator constructor separated from the demodulator GUI constructor 2017-11-09 01:03:05 +01:00
f4exb
4ad038ed9d Created demod constructor method in all Rx channel plugins 2017-11-08 14:23:49 +01:00
f4exb
76bf0ad104 Rx plugins: removed useless create method in private slot 2017-11-08 00:03:12 +01:00
f4exb
9ff05baa70 Renamed createRxChannel to createRxChannelGUI to described only the GUI will be created there in the future 2017-11-07 23:49:27 +01:00
f4exb
95f9df8396 Moved m_deviceAPI->addThreadedSource at the end of the constructor sequence in all channel plugins 2017-11-06 01:39:44 +01:00
f4exb
7370eba0f7 Bumped version to v3.8.0 2017-11-01 14:58:36 +01:00
f4exb
e206fc84a8 Create channel registration methods for the Tx part in DeviceUISet 2017-10-31 22:37:57 +01:00
f4exb
a61bb04dac Rx Channel plugins now handled via DeviceUISet 2017-10-31 08:24:05 +01:00
f4exb
a106deeaf7 Make a static getter of Main Window reference as it is de facto a singleton. Use it in place of plugin API getter 2017-10-24 13:45:10 +02:00
f4exb
fa77ca3fb6 Code re-organization in two libraries sdrbase and sdrgui in view of core / GUI split 2017-10-22 19:12:43 +02:00
f4exb
e36a6a0eb7 BFM demod: bumped version 2017-10-21 10:35:49 +02:00
f4exb
32f284a0de BFM demod: fixed missing channel configuration message handling 2017-10-21 10:35:03 +02:00
f4exb
8c2483a850 Demod GUI corrections 2017-10-12 01:21:30 +02:00
f4exb
f19572ed0e BFM plugin: fixed channel marker save to settings 2017-10-08 03:47:18 +02:00
f4exb
6095cf549c BFM demod: use settings in the demod 2017-10-01 20:17:20 +02:00
f4exb
5192d7fe59 BFM demod: use settings in the GUI only 2017-10-01 19:20:56 +02:00
f4exb
edd0adde3b BFM demod: created a settings class 2017-10-01 17:54:48 +02:00
f4exb
f10d486b28 BFM demod: fixed segfault 2017-10-01 16:02:34 +02:00
f4exb
b646d0c89f BFM demod: GUI and demod separation 2017-10-01 12:48:31 +02:00
f4exb
a9d1b2ef65 BFM demod: moved RDS parser in the demod 2017-10-01 11:50:16 +02:00
f4exb
0b6eb2129a Reset PluginInstanceGUI to its original name 2017-09-26 00:22:08 +02:00
f4exb
da8857e0e1 Windows build fixes 2017-09-23 17:19:58 +02:00