MSVC: Port RemoteVstPlugin

This commit is contained in:
Lukas W
2017-11-26 14:07:08 +01:00
parent 74d4b2f00f
commit 81a0ec3e48

View File

@@ -34,10 +34,6 @@
#include "RemotePlugin.h"
#ifdef LMMS_HAVE_PTHREAD_H
#include <pthread.h>
#endif
#ifdef LMMS_HAVE_FCNTL_H
#include <fcntl.h>
#endif
@@ -63,6 +59,7 @@
#define USE_WS_PREFIX
#include <windows.h>
#include <mutex>
#include <vector>
#include <queue>
#include <string>
@@ -240,17 +237,17 @@ public:
inline void lockShm()
{
pthread_mutex_lock( &m_shmLock );
m_shmLock.lock();
}
inline bool tryLockShm()
{
return pthread_mutex_trylock( &m_shmLock ) == 0;
return m_shmLock.try_lock();
}
inline void unlockShm()
{
pthread_mutex_unlock( &m_shmLock );
m_shmLock.unlock();
}
inline bool isShmValid()
@@ -346,7 +343,7 @@ private:
float * * m_inputs;
float * * m_outputs;
pthread_mutex_t m_shmLock;
std::mutex m_shmLock;
bool m_shmValid;
typedef std::vector<VstMidiEvent> VstMidiEventList;
@@ -392,7 +389,6 @@ RemoteVstPlugin::RemoteVstPlugin( const char * socketPath ) :
m_shouldGiveIdle( false ),
m_inputs( NULL ),
m_outputs( NULL ),
m_shmLock(),
m_shmValid( false ),
m_midiEvents(),
m_bpm( 0 ),
@@ -402,8 +398,6 @@ RemoteVstPlugin::RemoteVstPlugin( const char * socketPath ) :
m_shmID( -1 ),
m_vstSyncData( NULL )
{
pthread_mutex_init( &m_shmLock, NULL );
__plugin = this;
#ifndef USE_QT_SHMEM
@@ -493,8 +487,6 @@ RemoteVstPlugin::~RemoteVstPlugin()
delete[] m_inputs;
delete[] m_outputs;
pthread_mutex_destroy( &m_shmLock );
}
@@ -675,11 +667,11 @@ void RemoteVstPlugin::init( const std::string & _plugin_file )
static void close_check( int fd )
static void close_check( FILE* fd )
{
if( close( fd ) )
if( fclose( fd ) )
{
perror( "close" );
perror( "fclose" );
}
}
@@ -1047,8 +1039,9 @@ void RemoteVstPlugin::saveChunkToFile( const std::string & _file )
const int len = pluginDispatch( 23, 0, 0, &chunk );
if( len > 0 )
{
int fd = open( _file.c_str(), O_WRONLY | O_BINARY );
if ( ::write( fd, chunk, len ) != len )
FILE* fd = fopen( _file.c_str(), "wb" );
if ( fwrite( chunk, 1, len, fd ) != len )
{
fprintf( stderr,
"Error saving chunk to file.\n" );
@@ -1365,8 +1358,8 @@ void RemoteVstPlugin::loadChunkFromFile( const std::string & _file, int _len )
{
char * chunk = new char[_len];
const int fd = open( _file.c_str(), O_RDONLY | O_BINARY );
if ( ::read( fd, chunk, _len ) != _len )
FILE* fd = fopen( _file.c_str(), "rb" );
if ( fread( chunk, 1, _len, fd ) != _len )
{
fprintf( stderr, "Error loading chunk from file.\n" );
}
@@ -1541,11 +1534,7 @@ intptr_t RemoteVstPlugin::hostCallback( AEffect * _effect, int32_t _opcode,
_timeInfo.flags |= kVstBarsValid;
#ifdef LMMS_BUILD_WIN64
return (long long) &_timeInfo;
#else
return (long) &_timeInfo;
#endif
return (intptr_t) &_timeInfo;
case audioMasterProcessEvents:
SHOW_CALLBACK( "amc: audioMasterProcessEvents\n" );
@@ -1971,14 +1960,6 @@ int main( int _argc, char * * _argv )
return -1;
}
#ifdef LMMS_BUILD_WIN32
#ifndef __WINPTHREADS_VERSION
// (non-portable) initialization of statically linked pthread library
pthread_win32_process_attach_np();
pthread_win32_thread_attach_np();
#endif
#endif
#ifdef LMMS_BUILD_LINUX
#ifdef LMMS_HAVE_SCHED_H
// try to set realtime-priority
@@ -2086,14 +2067,6 @@ int main( int _argc, char * * _argv )
delete __plugin;
#ifdef LMMS_BUILD_WIN32
#ifndef __WINPTHREADS_VERSION
pthread_win32_thread_detach_np();
pthread_win32_process_detach_np();
#endif
#endif
return 0;
}