diff --git a/meson.build b/meson.build index 0006390..e420959 100755 --- a/meson.build +++ b/meson.build @@ -135,10 +135,19 @@ yaml_opts.add_cmake_defines({'CMAKE_POSITION_INDEPENDENT_CODE': 'ON', 'YAML_CPP_BUILD_TOOLS': 'ON'}) snd_opts = cmake.subproject_options() + +snd_shared = '' + +if host_sys == 'windows' + snd_shared = 'OFF' +else + snd_shared = 'ON' +endif + snd_opts.add_cmake_defines({'CMAKE_POSITION_INDEPENDENT_CODE': 'ON', 'CMAKE_INSTALL_PREFIX': prefix, 'CMAKE_BUILD_TYPE': 'Release', - 'BUILD_SHARED_LIBS': 'ON', + 'BUILD_SHARED_LIBS': snd_shared, 'BUILD_PROGRAMS': 'OFF', 'BUILD_EXAMPLES': 'OFF', 'BUILD_TESTING': 'OFF', @@ -192,12 +201,12 @@ if not wx.found() wx_base = wx_subproject.dependency('wxbase') wx = [wx_media, wx_core, wx_base] else - wxconfig = find_program(['wx-config', 'wx-config-gtk3']) + wxconfig = find_program(['wx-config', 'wx-config-gtk3', 'wx-config-3.1']) wx_modules = ['media', 'std'] foreach module : wx_modules - wx_cxx_flags += run_command(wxconfig, '--cxxflags', module).stdout().strip().split() - wx_libs += run_command(wxconfig, '--libs', module).stdout().strip().split() + wx_cxx_flags += run_command(wxconfig, '--cxxflags', module, capture: true, check: false).stdout().strip().split() + wx_libs += run_command(wxconfig, '--libs', module, capture: true, check: false).stdout().strip().split() endforeach endif diff --git a/src/App.cpp b/src/App.cpp index 6d7c8f9..6c0e9d8 100644 --- a/src/App.cpp +++ b/src/App.cpp @@ -64,7 +64,7 @@ bool cApp::OnInit() { m_pSplash = new wxSplashScreen(bitmap, wxSPLASH_CENTRE_ON_SCREEN | wxSPLASH_TIMEOUT, - 10000, NULL, -1, wxDefaultPosition, wxDefaultSize, + 2000, NULL, -1, wxDefaultPosition, wxDefaultSize, wxBORDER_SIMPLE | wxSTAY_ON_TOP); } diff --git a/src/Database/Database.cpp b/src/Database/Database.cpp index 0a139f6..2633f1d 100644 --- a/src/Database/Database.cpp +++ b/src/Database/Database.cpp @@ -25,10 +25,11 @@ #include #include #include - #include + #include #include +#include #include #include #include @@ -534,8 +535,8 @@ wxVector> cDatabase::LoadSamplesDatabase(wxDataViewTreeCtrl wxVector> vecSet; wxVariant icon_filled, icon_empty; - icon_filled = wxVariant(wxBitmap(icon_star_filled)); - icon_empty = wxVariant(wxBitmap(icon_star_empty)); + icon_filled = wxVariant(wxBitmap(icon_star_filled, wxBITMAP_TYPE_PNG)); + icon_empty = wxVariant(wxBitmap(icon_star_empty, wxBITMAP_TYPE_PNG)); try { @@ -674,8 +675,8 @@ wxVector>cDatabase::FilterDatabaseBySampleName(const std::st wxVector> sampleVec; wxVariant icon_filled, icon_empty; - icon_filled = wxVariant(wxBitmap(icon_star_filled)); - icon_empty = wxVariant(wxBitmap(icon_star_empty)); + icon_filled = wxVariant(wxBitmap(icon_star_filled, wxBITMAP_TYPE_PNG)); + icon_empty = wxVariant(wxBitmap(icon_star_empty, wxBITMAP_TYPE_PNG)); try { @@ -749,8 +750,8 @@ wxVector>cDatabase::FilterDatabaseByHiveName(const std::stri wxVector> sampleVec; wxVariant icon_filled, icon_empty; - icon_filled = wxVariant(wxBitmap(icon_star_filled)); - icon_empty = wxVariant(wxBitmap(icon_star_empty)); + icon_filled = wxVariant(wxBitmap(icon_star_filled, wxBITMAP_TYPE_PNG)); + icon_empty = wxVariant(wxBitmap(icon_star_empty, wxBITMAP_TYPE_PNG)); try { @@ -931,8 +932,8 @@ wxVector>cDatabase::RestoreFromTrashByFilename(const std::st const std::string &icon_star_empty) { wxVariant icon_filled, icon_empty; - icon_filled = wxVariant(wxBitmap(icon_star_filled)); - icon_empty = wxVariant(wxBitmap(icon_star_empty)); + icon_filled = wxVariant(wxBitmap(icon_star_filled, wxBITMAP_TYPE_PNG)); + icon_empty = wxVariant(wxBitmap(icon_star_empty, wxBITMAP_TYPE_PNG)); try { diff --git a/src/GUI/Hives.cpp b/src/GUI/Hives.cpp index d7f2c8a..99224d2 100644 --- a/src/GUI/Hives.cpp +++ b/src/GUI/Hives.cpp @@ -29,6 +29,7 @@ #include +#include #include #include #include @@ -121,7 +122,7 @@ void cHivesPanel::OnDragAndDropToHives(wxDropFilesEvent& event) { m_pHives->AppendItem(drop_target, files[i]); - SampleHive::cHiveData::Get().ListCtrlSetVariant(wxVariant(wxBitmap(ICON_STAR_FILLED_16px)), row, 0); + SampleHive::cHiveData::Get().ListCtrlSetVariant(wxVariant(wxBitmap(ICON_STAR_FILLED_16px, wxBITMAP_TYPE_PNG)), row, 0); db.UpdateFavoriteColumn(file_name.ToStdString(), 1); db.UpdateHiveName(file_name.ToStdString(), hive_name.ToStdString()); @@ -366,7 +367,7 @@ void cHivesPanel::OnShowHivesContextMenu(wxDataViewEvent& event) { SH_LOG_DEBUG("Found match"); - SampleHive::cHiveData::Get().ListCtrlSetVariant(wxVariant(wxBitmap(ICON_STAR_EMPTY_16px)), + SampleHive::cHiveData::Get().ListCtrlSetVariant(wxVariant(wxBitmap(ICON_STAR_EMPTY_16px, wxBITMAP_TYPE_PNG)), i, 0); db.UpdateFavoriteColumn(matched_sample.ToStdString(), 0); @@ -408,8 +409,7 @@ void cHivesPanel::OnShowHivesContextMenu(wxDataViewEvent& event) { const auto dataset = db.FilterDatabaseByHiveName(hive_name.ToStdString(), serializer.DeserializeShowFileExtension(), - ICON_STAR_FILLED_16px, - ICON_STAR_EMPTY_16px); + ICON_STAR_FILLED_16px, ICON_STAR_EMPTY_16px); if (dataset.empty()) { @@ -489,7 +489,7 @@ void cHivesPanel::OnShowHivesContextMenu(wxDataViewEvent& event) { SH_LOG_DEBUG("Found match"); - SampleHive::cHiveData::Get().ListCtrlSetVariant(wxVariant(wxBitmap(ICON_STAR_EMPTY_16px)), i, 0); + SampleHive::cHiveData::Get().ListCtrlSetVariant(wxVariant(wxBitmap(ICON_STAR_EMPTY_16px, wxBITMAP_TYPE_PNG)), i, 0); db.UpdateFavoriteColumn(matched_sample.ToStdString(), 0); db.UpdateHiveName(matched_sample.ToStdString(), m_pHives->GetItemText(m_FavoritesHive).ToStdString()); @@ -698,7 +698,7 @@ void cHivesPanel::OnClickRemoveHive(wxCommandEvent& event) { SH_LOG_DEBUG("Found match"); - SampleHive::cHiveData::Get().ListCtrlSetVariant(wxVariant(wxBitmap(ICON_STAR_EMPTY_16px)), i, 0); + SampleHive::cHiveData::Get().ListCtrlSetVariant(wxVariant(wxBitmap(ICON_STAR_EMPTY_16px, wxBITMAP_TYPE_PNG)), i, 0); db.UpdateFavoriteColumn(matched_sample.ToStdString(), 0); db.UpdateHiveName(matched_sample.ToStdString(), m_pHives->GetItemText(m_FavoritesHive).ToStdString()); diff --git a/src/GUI/ListCtrl.cpp b/src/GUI/ListCtrl.cpp index 2c6f8cc..3c27646 100644 --- a/src/GUI/ListCtrl.cpp +++ b/src/GUI/ListCtrl.cpp @@ -31,6 +31,7 @@ #include "Utility/Utils.hpp" #include +#include #include #include #include @@ -41,7 +42,7 @@ cListCtrl::cListCtrl(wxWindow* window) m_pWindow(window) { // Adding columns to wxDataViewListCtrl. - AppendBitmapColumn(wxBitmap(ICON_STAR_FILLED_16px), + AppendBitmapColumn(wxBitmap(ICON_STAR_FILLED_16px, wxBITMAP_TYPE_PNG), 0, wxDATAVIEW_CELL_ACTIVATABLE, 30, @@ -187,7 +188,7 @@ void cListCtrl::OnClickLibrary(wxDataViewEvent& event) if (db.GetFavoriteColumnValueByFilename(filename) == 0) { - this->SetValue(wxVariant(wxBitmap(ICON_STAR_FILLED_16px)), selected_row, 0); + this->SetValue(wxVariant(wxBitmap(ICON_STAR_FILLED_16px, wxBITMAP_TYPE_PNG)), selected_row, 0); db.UpdateFavoriteColumn(filename, 1); db.UpdateHiveName(filename, hive_name); @@ -207,7 +208,7 @@ void cListCtrl::OnClickLibrary(wxDataViewEvent& event) } else { - this->SetValue(wxVariant(wxBitmap(ICON_STAR_EMPTY_16px)), selected_row, 0); + this->SetValue(wxVariant(wxBitmap(ICON_STAR_EMPTY_16px, wxBITMAP_TYPE_PNG)), selected_row, 0); db.UpdateFavoriteColumn(filename, 0); db.UpdateHiveName(filename, SampleHive::cHiveData::Get().GetHiveItemText(true).ToStdString()); @@ -403,7 +404,7 @@ void cListCtrl::OnShowLibraryContextMenu(wxDataViewEvent& event) // Add To Favorites if (favorite_add && db_status == 0) { - this->SetValue(wxVariant(wxBitmap(ICON_STAR_FILLED_16px)), selected_row, 0); + this->SetValue(wxVariant(wxBitmap(ICON_STAR_FILLED_16px, wxBITMAP_TYPE_PNG)), selected_row, 0); db.UpdateFavoriteColumn(filename, 1); db.UpdateHiveName(filename, hive_name); @@ -424,7 +425,7 @@ void cListCtrl::OnShowLibraryContextMenu(wxDataViewEvent& event) else { //Remove From Favorites - this->SetValue(wxVariant(wxBitmap(ICON_STAR_EMPTY_16px)), selected_row, 0); + this->SetValue(wxVariant(wxBitmap(ICON_STAR_EMPTY_16px, wxBITMAP_TYPE_PNG)), selected_row, 0); db.UpdateFavoriteColumn(filename, 0); db.UpdateHiveName(filename, SampleHive::cHiveData::Get().GetHiveItemText(true).ToStdString()); @@ -597,7 +598,7 @@ void cListCtrl::OnShowLibraryContextMenu(wxDataViewEvent& event) if (db.GetFavoriteColumnValueByFilename(files[i].ToStdString())) { - this->SetValue(wxVariant(wxBitmap(ICON_STAR_EMPTY_16px)), item_row, 0); + this->SetValue(wxVariant(wxBitmap(ICON_STAR_EMPTY_16px, wxBITMAP_TYPE_PNG)), item_row, 0); db.UpdateFavoriteColumn(files[i].ToStdString(), 0); diff --git a/src/GUI/MainFrame.cpp b/src/GUI/MainFrame.cpp index 1a053ee..a3aa574 100644 --- a/src/GUI/MainFrame.cpp +++ b/src/GUI/MainFrame.cpp @@ -266,11 +266,11 @@ void cMainFrame::LoadDatabase() try { const auto dataset = m_pDatabase->LoadSamplesDatabase(*m_pNotebook->GetHivesPanel()->GetHivesObject(), - m_pNotebook->GetHivesPanel()->GetFavoritesHive(), - *m_pNotebook->GetTrashPanel()->GetTrashObject(), - m_pNotebook->GetTrashPanel()->GetTrashRoot(), - serializer.DeserializeShowFileExtension(), - ICON_STAR_FILLED_16px, ICON_STAR_EMPTY_16px); + m_pNotebook->GetHivesPanel()->GetFavoritesHive(), + *m_pNotebook->GetTrashPanel()->GetTrashObject(), + m_pNotebook->GetTrashPanel()->GetTrashRoot(), + serializer.DeserializeShowFileExtension(), + ICON_STAR_FILLED_16px, ICON_STAR_EMPTY_16px); if (dataset.empty()) SH_LOG_INFO("Error! Database is empty."); @@ -355,7 +355,7 @@ void cMainFrame::LoadConfigFile() this->SetSize(width, height); this->SetMinSize(wxSize(min_width, min_height)); this->CenterOnScreen(wxBOTH); - this->SetIcon(wxIcon(ICON_HIVE_256px, wxICON_DEFAULT_TYPE, -1, -1)); + this->SetIcon(wxIcon(ICON_HIVE_256px, wxBITMAP_TYPE_PNG)); this->SetTitle(PROJECT_NAME); this->SetStatusText(wxString::Format("%s %s", PROJECT_NAME, PROJECT_VERSION), 3); this->SetStatusText(_("Stopped"), 1); @@ -631,7 +631,7 @@ void cMainFrame::OnSelectPreferences(wxCommandEvent& event) } if (settings->IsWaveformColourChanged()) { - m_pWaveformViewer->ResetDC(); + m_pWaveformViewer->ResetBitmapDC(); } break; case wxID_CANCEL: @@ -869,7 +869,7 @@ void cMainFrame::OnRecieveCallFunctionPlay(SampleHive::cCallFunctionEvent& event void cMainFrame::OnRecieveWaveformUpdateStatus(SampleHive::cWaveformUpdateEvent& event) { - m_pWaveformViewer->ResetDC(); + m_pWaveformViewer->ResetBitmapDC(); } void cMainFrame::OnRecieveClearLoopPointsStatus(SampleHive::cLoopPointsEvent& event) diff --git a/src/GUI/TransportControls.cpp b/src/GUI/TransportControls.cpp index b00e1c9..0417a39 100644 --- a/src/GUI/TransportControls.cpp +++ b/src/GUI/TransportControls.cpp @@ -30,6 +30,8 @@ #include "Utility/Paths.hpp" #include "Utility/Utils.hpp" +#include + cTransportControls::cTransportControls(wxWindow* window, wxMediaCtrl& mediaCtrl) : wxPanel(window, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL | wxNO_BORDER), m_MediaCtrl(mediaCtrl) @@ -39,11 +41,11 @@ cTransportControls::cTransportControls(wxWindow* window, wxMediaCtrl& mediaCtrl) // Looping region controls if (m_Theme.IsDark()) m_pLoopABButton = new wxBitmapToggleButton(this, SampleHive::ID::BC_LoopABButton, - static_cast(ICON_AB_LIGHT_16px), + wxBitmap(ICON_AB_LIGHT_16px, wxBITMAP_TYPE_PNG), wxDefaultPosition, wxDefaultSize, 0); else m_pLoopABButton = new wxBitmapToggleButton(this, SampleHive::ID::BC_LoopABButton, - static_cast(ICON_AB_DARK_16px), + wxBitmap(ICON_AB_DARK_16px, wxBITMAP_TYPE_PNG), wxDefaultPosition, wxDefaultSize, 0); m_pLoopABButton->SetToolTip(_("Loop selected region")); @@ -67,31 +69,31 @@ cTransportControls::cTransportControls(wxWindow* window, wxMediaCtrl& mediaCtrl) if (m_Theme.IsDark()) { m_pPlayButton = new wxBitmapButton(this, SampleHive::ID::BC_Play, - static_cast(ICON_PLAY_LIGHT_16px), + wxBitmap(ICON_PLAY_LIGHT_16px, wxBITMAP_TYPE_PNG), wxDefaultPosition, wxDefaultSize, 0); m_pLoopButton = new wxBitmapToggleButton(this, SampleHive::ID::BC_Loop, - static_cast(ICON_LOOP_LIGHT_16px), + wxBitmap(ICON_LOOP_LIGHT_16px, wxBITMAP_TYPE_PNG), wxDefaultPosition, wxDefaultSize, 0); m_pStopButton = new wxBitmapButton(this, SampleHive::ID::BC_Stop, - static_cast(ICON_STOP_LIGHT_16px), + wxBitmap(ICON_STOP_LIGHT_16px, wxBITMAP_TYPE_PNG), wxDefaultPosition, wxDefaultSize, 0); m_pMuteButton = new wxBitmapToggleButton(this, SampleHive::ID::BC_Mute, - static_cast(ICON_MUTE_LIGHT_16px), + wxBitmap(ICON_MUTE_LIGHT_16px, wxBITMAP_TYPE_PNG), wxDefaultPosition, wxDefaultSize, 0); } else { m_pPlayButton = new wxBitmapButton(this, SampleHive::ID::BC_Play, - static_cast(ICON_PLAY_DARK_16px), + wxBitmap(ICON_PLAY_DARK_16px, wxBITMAP_TYPE_PNG), wxDefaultPosition, wxDefaultSize, 0); m_pLoopButton = new wxBitmapToggleButton(this, SampleHive::ID::BC_Loop, - static_cast(ICON_LOOP_DARK_16px), + wxBitmap(ICON_LOOP_DARK_16px, wxBITMAP_TYPE_PNG), wxDefaultPosition, wxDefaultSize, 0); m_pStopButton = new wxBitmapButton(this, SampleHive::ID::BC_Stop, - static_cast(ICON_STOP_DARK_16px), + wxBitmap(ICON_STOP_DARK_16px, wxBITMAP_TYPE_PNG), wxDefaultPosition, wxDefaultSize, 0); m_pMuteButton = new wxBitmapToggleButton(this, SampleHive::ID::BC_Mute, - static_cast(ICON_MUTE_DARK_16px), + wxBitmap(ICON_MUTE_DARK_16px, wxBITMAP_TYPE_PNG), wxDefaultPosition, wxDefaultSize, 0); } diff --git a/src/GUI/Trash.cpp b/src/GUI/Trash.cpp index 37a5598..b45f2ba 100644 --- a/src/GUI/Trash.cpp +++ b/src/GUI/Trash.cpp @@ -30,6 +30,7 @@ #include +#include #include #include @@ -106,7 +107,7 @@ void cTrashPanel::OnDragAndDropToTrash(wxDropFilesEvent& event) if (db.GetFavoriteColumnValueByFilename(files[i].ToStdString())) { - SampleHive::cHiveData::Get().ListCtrlSetVariant(wxVariant(wxBitmap(ICON_STAR_EMPTY_16px)), item_row, 0); + SampleHive::cHiveData::Get().ListCtrlSetVariant(wxVariant(wxBitmap(ICON_STAR_EMPTY_16px, wxBITMAP_TYPE_PNG)), item_row, 0); db.UpdateFavoriteColumn(files[i].ToStdString(), 0); @@ -206,8 +207,7 @@ void cTrashPanel::OnShowTrashContextMenu(wxTreeEvent& event) if (db.RestoreFromTrashByFilename(files[i].ToStdString(), dataset, serializer.DeserializeShowFileExtension(), - ICON_STAR_FILLED_16px, - ICON_STAR_EMPTY_16px).empty()) + ICON_STAR_FILLED_16px, ICON_STAR_EMPTY_16px).empty()) { SH_LOG_INFO("Error! Database is empty."); } diff --git a/src/GUI/WaveformViewer.cpp b/src/GUI/WaveformViewer.cpp index a45c2df..d9807b0 100644 --- a/src/GUI/WaveformViewer.cpp +++ b/src/GUI/WaveformViewer.cpp @@ -451,7 +451,7 @@ void cWaveformViewer::OnMouseLeftButtonUp(wxMouseEvent& event) } } -void cWaveformViewer::ResetDC() +void cWaveformViewer::ResetBitmapDC() { bBitmapDirty = true; bSelectRange = false; diff --git a/src/GUI/WaveformViewer.hpp b/src/GUI/WaveformViewer.hpp index 2d4556d..cf1e90f 100644 --- a/src/GUI/WaveformViewer.hpp +++ b/src/GUI/WaveformViewer.hpp @@ -86,5 +86,5 @@ class cWaveformViewer : public wxPanel public: // ------------------------------------------------------------------- - void ResetDC(); + void ResetBitmapDC(); }; diff --git a/src/Utility/Utils.cpp b/src/Utility/Utils.cpp index 3e000a2..8c13dfc 100644 --- a/src/Utility/Utils.cpp +++ b/src/Utility/Utils.cpp @@ -28,6 +28,7 @@ #include "Utility/Utils.hpp" #include +#include #include namespace SampleHive { @@ -138,7 +139,7 @@ namespace SampleHive { wxVector data; - wxVariant icon = wxVariant(wxBitmap(ICON_STAR_EMPTY_16px)); + wxVariant icon = wxVariant(wxBitmap(ICON_STAR_EMPTY_16px, wxBITMAP_TYPE_PNG)); if (tags.IsFileValid()) {