qt: remove redundant files
This commit is contained in:
@@ -11,8 +11,8 @@ add_library(plat STATIC
|
|||||||
qt_main.cpp
|
qt_main.cpp
|
||||||
qt_platform.cpp
|
qt_platform.cpp
|
||||||
sdl_joystick.cpp
|
sdl_joystick.cpp
|
||||||
cpp11_thread.cpp
|
|
||||||
)
|
)
|
||||||
|
|
||||||
add_library(ui STATIC
|
add_library(ui STATIC
|
||||||
qt_ui.cpp
|
qt_ui.cpp
|
||||||
qt_cdrom.c
|
qt_cdrom.c
|
||||||
@@ -106,6 +106,7 @@ add_library(ui STATIC
|
|||||||
|
|
||||||
../qt_resources.qrc
|
../qt_resources.qrc
|
||||||
)
|
)
|
||||||
|
|
||||||
if (APPLE)
|
if (APPLE)
|
||||||
target_sources(ui PRIVATE macos_event_filter.mm)
|
target_sources(ui PRIVATE macos_event_filter.mm)
|
||||||
endif()
|
endif()
|
||||||
|
@@ -1,133 +0,0 @@
|
|||||||
#include <mutex>
|
|
||||||
#include <thread>
|
|
||||||
#include <condition_variable>
|
|
||||||
|
|
||||||
#include <86box/plat.h>
|
|
||||||
|
|
||||||
struct event_cpp11_t
|
|
||||||
{
|
|
||||||
std::condition_variable cond;
|
|
||||||
std::mutex mutex;
|
|
||||||
bool state = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
extern "C" {
|
|
||||||
|
|
||||||
thread_t *
|
|
||||||
thread_create(void (*thread_rout)(void *param), void *param)
|
|
||||||
{
|
|
||||||
auto thread = new std::thread([thread_rout, param] {
|
|
||||||
thread_rout(param);
|
|
||||||
});
|
|
||||||
return thread;
|
|
||||||
}
|
|
||||||
|
|
||||||
mutex_t *
|
|
||||||
thread_create_mutex_with_spin_count(unsigned int spin_count)
|
|
||||||
{
|
|
||||||
/* Setting spin count of a mutex is not possible with pthreads. */
|
|
||||||
return thread_create_mutex();
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
thread_wait(thread_t *arg, int timeout)
|
|
||||||
{
|
|
||||||
(void) timeout;
|
|
||||||
auto thread = reinterpret_cast<std::thread*>(arg);
|
|
||||||
thread->join();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
mutex_t *
|
|
||||||
thread_create_mutex(void)
|
|
||||||
{
|
|
||||||
auto mutex = new std::mutex;
|
|
||||||
return mutex;
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
thread_wait_mutex(mutex_t *_mutex)
|
|
||||||
{
|
|
||||||
if (_mutex == nullptr)
|
|
||||||
return(0);
|
|
||||||
auto mutex = reinterpret_cast<std::mutex*>(_mutex);
|
|
||||||
mutex->lock();
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int
|
|
||||||
thread_release_mutex(mutex_t *_mutex)
|
|
||||||
{
|
|
||||||
if (_mutex == nullptr)
|
|
||||||
return(0);
|
|
||||||
auto mutex = reinterpret_cast<std::mutex*>(_mutex);
|
|
||||||
mutex->unlock();
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void
|
|
||||||
thread_close_mutex(mutex_t *_mutex)
|
|
||||||
{
|
|
||||||
auto mutex = reinterpret_cast<std::mutex*>(_mutex);
|
|
||||||
delete mutex;
|
|
||||||
}
|
|
||||||
|
|
||||||
event_t *
|
|
||||||
thread_create_event()
|
|
||||||
{
|
|
||||||
auto ev = new event_cpp11_t;
|
|
||||||
return ev;
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
thread_wait_event(event_t *handle, int timeout)
|
|
||||||
{
|
|
||||||
auto event = reinterpret_cast<event_cpp11_t*>(handle);
|
|
||||||
auto lock = std::unique_lock<std::mutex>(event->mutex);
|
|
||||||
|
|
||||||
if (timeout < 0) {
|
|
||||||
event->cond.wait(lock, [event] { return event->state; });
|
|
||||||
} else {
|
|
||||||
auto to = std::chrono::system_clock::now() + std::chrono::milliseconds(timeout);
|
|
||||||
std::cv_status status;
|
|
||||||
|
|
||||||
do {
|
|
||||||
status = event->cond.wait_until(lock, to);
|
|
||||||
} while ((status != std::cv_status::timeout) && !event->state);
|
|
||||||
|
|
||||||
if (status == std::cv_status::timeout) {
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
thread_set_event(event_t *handle)
|
|
||||||
{
|
|
||||||
auto event = reinterpret_cast<event_cpp11_t*>(handle);
|
|
||||||
{
|
|
||||||
auto lock = std::unique_lock<std::mutex>(event->mutex);
|
|
||||||
event->state = true;
|
|
||||||
}
|
|
||||||
event->cond.notify_all();
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
thread_reset_event(event_t *handle)
|
|
||||||
{
|
|
||||||
auto event = reinterpret_cast<event_cpp11_t*>(handle);
|
|
||||||
auto lock = std::unique_lock<std::mutex>(event->mutex);
|
|
||||||
event->state = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
thread_destroy_event(event_t *handle)
|
|
||||||
{
|
|
||||||
auto event = reinterpret_cast<event_cpp11_t*>(handle);
|
|
||||||
delete event;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@@ -1,165 +0,0 @@
|
|||||||
|
|
||||||
#include <RtMidi.h>
|
|
||||||
#include <cstdint>
|
|
||||||
#include <cstring>
|
|
||||||
extern "C"
|
|
||||||
{
|
|
||||||
#include <86box/86box.h>
|
|
||||||
#include <86box/midi.h>
|
|
||||||
#include <86box/plat_midi.h>
|
|
||||||
#include <86box/config.h>
|
|
||||||
}
|
|
||||||
|
|
||||||
extern "C" {
|
|
||||||
|
|
||||||
static RtMidiOut* midiout = nullptr;
|
|
||||||
static RtMidiIn* midiin = nullptr;
|
|
||||||
static int midi_out_id = 0, midi_in_id = 0;
|
|
||||||
static const int midi_lengths[8] = {3, 3, 3, 3, 2, 2, 3, 1};
|
|
||||||
|
|
||||||
int plat_midi_write(uint8_t val)
|
|
||||||
{ return 0; }
|
|
||||||
|
|
||||||
void plat_midi_init()
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
if (!midiout) midiout = new RtMidiOut;
|
|
||||||
}
|
|
||||||
catch (RtMidiError& error)
|
|
||||||
{
|
|
||||||
pclog("Failed to initialize MIDI output: %s\n", error.getMessage().c_str());
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
midi_out_id = config_get_int((char*)SYSTEM_MIDI_NAME, (char*)"midi", 0);
|
|
||||||
try
|
|
||||||
{
|
|
||||||
midiout->openPort(midi_out_id);
|
|
||||||
}
|
|
||||||
catch (RtMidiError& error)
|
|
||||||
{
|
|
||||||
pclog("Fallback to default MIDI output port: %s\n", error.getMessage().c_str());
|
|
||||||
try
|
|
||||||
{
|
|
||||||
midiout->openPort(0);
|
|
||||||
}
|
|
||||||
catch (RtMidiError& error)
|
|
||||||
{
|
|
||||||
pclog("Failed to initialize MIDI output: %s\n", error.getMessage().c_str());
|
|
||||||
delete midiout;
|
|
||||||
midiout = nullptr;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void plat_midi_close()
|
|
||||||
{
|
|
||||||
if (!midiout) return;
|
|
||||||
midiout->closePort();
|
|
||||||
delete midiout;
|
|
||||||
midiout = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
int plat_midi_get_num_devs()
|
|
||||||
{
|
|
||||||
if (!midiout)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
midiout = new RtMidiOut;
|
|
||||||
}
|
|
||||||
catch (RtMidiError& error)
|
|
||||||
{
|
|
||||||
pclog("Failed to initialize MIDI output: %s\n", error.getMessage().c_str());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return midiout ? midiout->getPortCount() : 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void plat_midi_play_msg(uint8_t *msg)
|
|
||||||
{
|
|
||||||
if (midiout) midiout->sendMessage(msg, midi_lengths[(msg[0] >> 4) & 7]);
|
|
||||||
}
|
|
||||||
|
|
||||||
void plat_midi_get_dev_name(int num, char *s)
|
|
||||||
{
|
|
||||||
strcpy(s, midiout->getPortName(num).c_str());
|
|
||||||
}
|
|
||||||
|
|
||||||
void plat_midi_play_sysex(uint8_t *sysex, unsigned int len)
|
|
||||||
{
|
|
||||||
if (midiout) midiout->sendMessage(sysex, len);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void plat_midi_callback(double timeStamp, std::vector<unsigned char> *message, void *userData)
|
|
||||||
{
|
|
||||||
if (message->size() <= 3) midi_in_msg(message->data());
|
|
||||||
else midi_in_sysex(message->data(), message->size());
|
|
||||||
}
|
|
||||||
|
|
||||||
void plat_midi_input_init(void)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
if (!midiin) midiin = new RtMidiIn;
|
|
||||||
}
|
|
||||||
catch (RtMidiError& error)
|
|
||||||
{
|
|
||||||
pclog("Failed to initialize MIDI input: %s\n", error.getMessage().c_str());
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
midi_in_id = config_get_int((char*)SYSTEM_MIDI_NAME, (char*)"midi_input", 0);
|
|
||||||
try
|
|
||||||
{
|
|
||||||
midiin->openPort(midi_in_id);
|
|
||||||
}
|
|
||||||
catch (RtMidiError& error)
|
|
||||||
{
|
|
||||||
pclog("Fallback to default MIDI input port: %s\n", error.getMessage().c_str());
|
|
||||||
try
|
|
||||||
{
|
|
||||||
midiin->openPort(0);
|
|
||||||
}
|
|
||||||
catch (RtMidiError& error)
|
|
||||||
{
|
|
||||||
pclog("Failed to initialize MIDI input: %s\n", error.getMessage().c_str());
|
|
||||||
delete midiin;
|
|
||||||
midiin = nullptr;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
midiin->setCallback(plat_midi_callback);
|
|
||||||
}
|
|
||||||
|
|
||||||
void plat_midi_input_close(void)
|
|
||||||
{
|
|
||||||
midiin->cancelCallback();
|
|
||||||
midiin->closePort();
|
|
||||||
delete midiin;
|
|
||||||
midiin = nullptr;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
int plat_midi_in_get_num_devs(void)
|
|
||||||
{
|
|
||||||
if (!midiin)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
midiin = new RtMidiIn;
|
|
||||||
}
|
|
||||||
catch (RtMidiError& error)
|
|
||||||
{
|
|
||||||
pclog("Failed to initialize MIDI input: %s\n", error.getMessage().c_str());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return midiin ? midiin->getPortCount() : 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void plat_midi_in_get_dev_name(int num, char *s)
|
|
||||||
{
|
|
||||||
strcpy(s, midiin->getPortName(num).c_str());
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
Reference in New Issue
Block a user