You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
(1) |
Apr
(1) |
May
|
Jun
(1) |
Jul
|
Aug
(10) |
Sep
|
Oct
|
Nov
|
Dec
(3) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
(1) |
Feb
(2) |
Mar
(3) |
Apr
(2) |
May
(10) |
Jun
(2) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
(3) |
Dec
|
2008 |
Jan
(6) |
Feb
(4) |
Mar
(5) |
Apr
(2) |
May
(1) |
Jun
(1) |
Jul
(4) |
Aug
(6) |
Sep
(2) |
Oct
(9) |
Nov
(1) |
Dec
(4) |
2009 |
Jan
(9) |
Feb
(2) |
Mar
(2) |
Apr
(2) |
May
(6) |
Jun
(18) |
Jul
(33) |
Aug
(39) |
Sep
(33) |
Oct
(24) |
Nov
(23) |
Dec
(22) |
2010 |
Jan
(29) |
Feb
(32) |
Mar
(51) |
Apr
(17) |
May
(31) |
Jun
(21) |
Jul
(32) |
Aug
(28) |
Sep
(35) |
Oct
(27) |
Nov
(11) |
Dec
(13) |
2011 |
Jan
(14) |
Feb
(13) |
Mar
(27) |
Apr
(27) |
May
(28) |
Jun
(20) |
Jul
(43) |
Aug
(52) |
Sep
(66) |
Oct
(61) |
Nov
(11) |
Dec
(8) |
2012 |
Jan
(20) |
Feb
(30) |
Mar
(38) |
Apr
(21) |
May
(33) |
Jun
(21) |
Jul
(25) |
Aug
(9) |
Sep
(24) |
Oct
(42) |
Nov
(27) |
Dec
(41) |
2013 |
Jan
(20) |
Feb
(35) |
Mar
(156) |
Apr
(298) |
May
(258) |
Jun
(201) |
Jul
(105) |
Aug
(60) |
Sep
(193) |
Oct
(245) |
Nov
(280) |
Dec
(194) |
2014 |
Jan
(63) |
Feb
(202) |
Mar
(200) |
Apr
(23) |
May
(53) |
Jun
(105) |
Jul
(18) |
Aug
(26) |
Sep
(110) |
Oct
(187) |
Nov
(97) |
Dec
(74) |
2015 |
Jan
(45) |
Feb
(55) |
Mar
(116) |
Apr
(116) |
May
(193) |
Jun
(164) |
Jul
(50) |
Aug
(111) |
Sep
(98) |
Oct
(71) |
Nov
(103) |
Dec
(63) |
2016 |
Jan
(33) |
Feb
(101) |
Mar
(182) |
Apr
(139) |
May
(140) |
Jun
(103) |
Jul
(165) |
Aug
(286) |
Sep
(208) |
Oct
(127) |
Nov
(97) |
Dec
(54) |
2017 |
Jan
(64) |
Feb
(335) |
Mar
(202) |
Apr
(212) |
May
(139) |
Jun
(127) |
Jul
(294) |
Aug
(154) |
Sep
(170) |
Oct
(152) |
Nov
(156) |
Dec
(62) |
2018 |
Jan
(168) |
Feb
(237) |
Mar
(196) |
Apr
(174) |
May
(174) |
Jun
(161) |
Jul
(127) |
Aug
(88) |
Sep
(149) |
Oct
(66) |
Nov
(52) |
Dec
(135) |
2019 |
Jan
(146) |
Feb
(126) |
Mar
(104) |
Apr
(58) |
May
(60) |
Jun
(28) |
Jul
(197) |
Aug
(129) |
Sep
(141) |
Oct
(148) |
Nov
(63) |
Dec
(100) |
2020 |
Jan
(74) |
Feb
(37) |
Mar
(59) |
Apr
(154) |
May
(194) |
Jun
(133) |
Jul
(313) |
Aug
(197) |
Sep
(49) |
Oct
(162) |
Nov
(143) |
Dec
(57) |
2021 |
Jan
(120) |
Feb
(107) |
Mar
(314) |
Apr
(157) |
May
(524) |
Jun
(169) |
Jul
(72) |
Aug
(133) |
Sep
(135) |
Oct
(146) |
Nov
(198) |
Dec
(325) |
2022 |
Jan
(409) |
Feb
(249) |
Mar
(138) |
Apr
(95) |
May
(102) |
Jun
(221) |
Jul
(66) |
Aug
(120) |
Sep
(192) |
Oct
(131) |
Nov
(53) |
Dec
(171) |
2023 |
Jan
(357) |
Feb
(82) |
Mar
(168) |
Apr
(218) |
May
(196) |
Jun
(86) |
Jul
(115) |
Aug
(49) |
Sep
(190) |
Oct
(102) |
Nov
(45) |
Dec
(76) |
2024 |
Jan
(86) |
Feb
(50) |
Mar
(324) |
Apr
(209) |
May
(197) |
Jun
(232) |
Jul
(194) |
Aug
(247) |
Sep
(219) |
Oct
(266) |
Nov
(328) |
Dec
(304) |
2025 |
Jan
(191) |
Feb
(115) |
Mar
(137) |
Apr
(32) |
May
(126) |
Jun
(380) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <sv...@op...> - 2025-06-15 20:34:56
|
Author: sagamusix Date: Sun Jun 15 22:34:39 2025 New Revision: 23528 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=23528 Log: Merged revision(s) 23526 from trunk/OpenMPT: [Imp] In stream/MIDI/VGM export, pre-populate the subsong field for single-subsong export to the currently edited subsong (https://forum.openmpt.org/index.php?topic=7340.0). ........ Modified: branches/OpenMPT-1.32/ (props changed) branches/OpenMPT-1.32/mptrack/Mod2wave.cpp branches/OpenMPT-1.32/mptrack/Moddoc.cpp branches/OpenMPT-1.32/mptrack/Moddoc.h branches/OpenMPT-1.32/mptrack/OPLExport.cpp branches/OpenMPT-1.32/mptrack/mod2midi.cpp branches/OpenMPT-1.32/mptrack/mod2wave.h Modified: branches/OpenMPT-1.32/mptrack/Mod2wave.cpp ============================================================================== --- branches/OpenMPT-1.32/mptrack/Mod2wave.cpp Sun Jun 15 22:34:12 2025 (r23527) +++ branches/OpenMPT-1.32/mptrack/Mod2wave.cpp Sun Jun 15 22:34:39 2025 (r23528) @@ -75,11 +75,11 @@ END_MESSAGE_MAP() -CWaveConvert::CWaveConvert(CWnd *parent, ORDERINDEX minOrder, ORDERINDEX maxOrder, ORDERINDEX numOrders, CSoundFile &sndFile, const std::vector<EncoderFactoryBase*> &encFactories) +CWaveConvert::CWaveConvert(CWnd *parent, ORDERINDEX minOrder, ORDERINDEX maxOrder, ORDERINDEX numOrders, CModDoc &modDoc, const std::vector<EncoderFactoryBase*> &encFactories) : DialogBase(IDD_WAVECONVERT, parent) , m_Settings(theApp.GetSettings(), encFactories) - , m_SndFile(sndFile) - , m_subSongs{sndFile.GetAllSubSongs()} + , m_SndFile(modDoc.GetSoundFile()) + , m_subSongs{ modDoc.GetSoundFile().GetAllSubSongs()} , m_nNumOrders{numOrders} { MPT_ASSERT(!encFactories.empty()); @@ -90,6 +90,7 @@ m_Settings.minOrder = minOrder; m_Settings.maxOrder = maxOrder; } + m_selectedSong = modDoc.GetSubsongForCurrentEditPos(m_subSongs); } @@ -206,6 +207,7 @@ UpdateDialog(); + m_locked = false; return TRUE; } @@ -570,6 +572,9 @@ void CWaveConvert::OnSubsongChanged() { + if(m_locked) + return; + CheckRadioButton(IDC_RADIO1, IDC_RADIO3, IDC_RADIO1); BOOL ok = FALSE; const auto newSubSong = std::clamp(static_cast<size_t>(GetDlgItemInt(IDC_EDIT12, &ok, FALSE)), size_t(1), m_subSongs.size()) - 1; if(m_selectedSong == newSubSong || !ok) @@ -601,9 +606,6 @@ m_SpinMinOrder.EnableWindow(sel == IDC_RADIO2); m_SpinMaxOrder.EnableWindow(sel == IDC_RADIO2); - GetDlgItem(IDC_EDIT12)->EnableWindow(sel == IDC_RADIO1); - m_SpinSubsongIndex.EnableWindow(sel == IDC_RADIO1); - // No free slots => Cannot do instrument- or channel-based export to sample BOOL canDoMultiExport = (IsDlgButtonChecked(IDC_RADIO4) != BST_UNCHECKED /* normal export */ || m_CbnSampleSlot.GetItemData(0) == 0 /* "free slot" is in list */) ? TRUE : FALSE; GetDlgItem(IDC_CHECK4)->EnableWindow(canDoMultiExport); Modified: branches/OpenMPT-1.32/mptrack/Moddoc.cpp ============================================================================== --- branches/OpenMPT-1.32/mptrack/Moddoc.cpp Sun Jun 15 22:34:12 2025 (r23527) +++ branches/OpenMPT-1.32/mptrack/Moddoc.cpp Sun Jun 15 22:34:39 2025 (r23528) @@ -1690,7 +1690,7 @@ if ((!pMainFrm) || (!m_SndFile.GetType()) || encFactories.empty()) return; - CWaveConvert wsdlg(pMainFrm, nMinOrder, nMaxOrder, m_SndFile.Order().GetLengthTailTrimmed() - 1, m_SndFile, encFactories); + CWaveConvert wsdlg(pMainFrm, nMinOrder, nMaxOrder, m_SndFile.Order().GetLengthTailTrimmed() - 1, *this, encFactories); { BypassInputHandler bih; wsdlg.m_Settings.normalize = TrackerSettings::Instance().ExportNormalize; @@ -3237,6 +3237,34 @@ } +size_t CModDoc::GetSubsongForCurrentEditPos(const std::vector<SubSong> &subsongs) const +{ + const SEQUENCEINDEX seq = m_SndFile.Order.GetCurrentSequenceIndex(); + ORDERINDEX ord = 0; + if(auto *lastActiveFrame = CChildFrame::LastActiveFrame(); lastActiveFrame != nullptr && lastActiveFrame->GetActiveDocument() == this) + { + if(lastActiveFrame->IsPatternView()) + lastActiveFrame->SaveAllViewStates(); + ord = lastActiveFrame->GetPatternViewState().nOrder; + } + + // Note: This is just an estimation. If subsongs have overlapping order ranges + // (like in Unreal Engine modules where the first pattern of each subsong is found at the start of the order list), + // then we may return the wrong subsong index. + size_t candidate = subsongs.size(); + for(size_t i = 0; i < subsongs.size(); i++) + { + const SubSong &subsong = subsongs[i]; + if(subsong.sequence != seq) + continue; + if(mpt::is_in_range(ord, subsong.startOrder, subsong.endOrder)) + return i; + candidate = i; + } + return candidate; +} + + // Store all view positions t settings file void CModDoc::SerializeViews() const { Modified: branches/OpenMPT-1.32/mptrack/Moddoc.h ============================================================================== --- branches/OpenMPT-1.32/mptrack/Moddoc.h Sun Jun 15 22:34:12 2025 (r23527) +++ branches/OpenMPT-1.32/mptrack/Moddoc.h Sun Jun 15 22:34:39 2025 (r23528) @@ -407,6 +407,8 @@ ModCommand::NOTE GetNoteWithBaseOctave(int noteOffset, INSTRUMENTINDEX instr) const; INSTRUMENTINDEX GetParentInstrumentWithSameName(SAMPLEINDEX smp) const; + size_t GetSubsongForCurrentEditPos(const std::vector<SubSong> &subsongs) const; + // Convert a linear volume property to decibels, and format the value as a readable string static CString LinearToDecibelsString(double value, double valueAtZeroDB); // Convert a linear volume property to decibels Modified: branches/OpenMPT-1.32/mptrack/OPLExport.cpp ============================================================================== --- branches/OpenMPT-1.32/mptrack/OPLExport.cpp Sun Jun 15 22:34:12 2025 (r23527) +++ branches/OpenMPT-1.32/mptrack/OPLExport.cpp Sun Jun 15 22:34:39 2025 (r23528) @@ -362,6 +362,7 @@ , m_modDoc{modDoc} , m_subSongs{modDoc.GetSoundFile().GetAllSubSongs()} { + m_selectedSong = m_modDoc.GetSubsongForCurrentEditPos(m_subSongs); } BOOL OnInitDialog() override Modified: branches/OpenMPT-1.32/mptrack/mod2midi.cpp ============================================================================== --- branches/OpenMPT-1.32/mptrack/mod2midi.cpp Sun Jun 15 22:34:12 2025 (r23527) +++ branches/OpenMPT-1.32/mptrack/mod2midi.cpp Sun Jun 15 22:34:39 2025 (r23528) @@ -671,6 +671,7 @@ } } } + m_selectedSong = m_modDoc.GetSubsongForCurrentEditPos(m_subSongs); } Modified: branches/OpenMPT-1.32/mptrack/mod2wave.h ============================================================================== --- branches/OpenMPT-1.32/mptrack/mod2wave.h Sun Jun 15 22:34:12 2025 (r23527) +++ branches/OpenMPT-1.32/mptrack/mod2wave.h Sun Jun 15 22:34:39 2025 (r23528) @@ -22,6 +22,7 @@ OPENMPT_NAMESPACE_BEGIN +class CModDoc; class CSoundFile; struct SubSong; @@ -77,9 +78,10 @@ CEdit m_EditGenre; size_t m_selectedSong = 0; const ORDERINDEX m_nNumOrders; + bool m_locked = true; public: - CWaveConvert(CWnd *parent, ORDERINDEX minOrder, ORDERINDEX maxOrder, ORDERINDEX numOrders, CSoundFile &sndFile, const std::vector<EncoderFactoryBase *> &encFactories); + CWaveConvert(CWnd *parent, ORDERINDEX minOrder, ORDERINDEX maxOrder, ORDERINDEX numOrders, CModDoc &modDoc, const std::vector<EncoderFactoryBase *> &encFactories); ~CWaveConvert(); private: |
From: <sv...@op...> - 2025-06-15 20:34:25
|
Author: sagamusix Date: Sun Jun 15 22:34:12 2025 New Revision: 23527 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=23527 Log: Merged revision(s) 23524-23525 from trunk/OpenMPT: [Ref] CModTreeBar: Use FlagSet. ........ [Imp] Main toolbar: Allow icon groups to be hidden as well. At least one icon group needs to be always visible, though (https://bugs.openmpt.org/view.php?id=1889). ........ Modified: branches/OpenMPT-1.32/ (props changed) branches/OpenMPT-1.32/mptrack/MainFrm.cpp branches/OpenMPT-1.32/mptrack/Mainbar.cpp branches/OpenMPT-1.32/mptrack/Mainbar.h branches/OpenMPT-1.32/mptrack/Mainfrm.h branches/OpenMPT-1.32/mptrack/TrackerSettings.cpp branches/OpenMPT-1.32/mptrack/TrackerSettings.h branches/OpenMPT-1.32/mptrack/resource.h Modified: branches/OpenMPT-1.32/mptrack/MainFrm.cpp ============================================================================== --- branches/OpenMPT-1.32/mptrack/MainFrm.cpp Sun Jun 15 22:33:15 2025 (r23526) +++ branches/OpenMPT-1.32/mptrack/MainFrm.cpp Sun Jun 15 22:34:12 2025 (r23527) @@ -136,12 +136,18 @@ #endif // MPT_ENABLE_UPDATE ON_COMMAND(ID_HELP_SHOWSETTINGSFOLDER, &CMainFrame::OnShowSettingsFolder) ON_COMMAND(ID_HELPSHOW, &CMainFrame::OnHelp) + ON_COMMAND(ID_MAINBAR_SHOW_OCTAVE, &CMainFrame::OnToggleMainBarShowOctave) ON_COMMAND(ID_MAINBAR_SHOW_TEMPO, &CMainFrame::OnToggleMainBarShowTempo) ON_COMMAND(ID_MAINBAR_SHOW_SPEED, &CMainFrame::OnToggleMainBarShowSpeed) ON_COMMAND(ID_MAINBAR_SHOW_ROWSPERBEAT, &CMainFrame::OnToggleMainBarShowRowsPerBeat) ON_COMMAND(ID_MAINBAR_SHOW_GLOBALVOLUME, &CMainFrame::OnToggleMainBarShowGlobalVolume) ON_COMMAND(ID_MAINBAR_SHOW_VUMETER, &CMainFrame::OnToggleMainBarShowVUMeter) + ON_COMMAND(ID_MAINBAR_SHOW_FILE_ICONS, &CMainFrame::OnToggleMainBarShowFileIcons) + ON_COMMAND(ID_MAINBAR_SHOW_EDIT_ICONS, &CMainFrame::OnToggleMainBarShowEditIcons) + ON_COMMAND(ID_MAINBAR_SHOW_PLAY_ICONS, &CMainFrame::OnToggleMainBarShowPlayIcons) + ON_COMMAND(ID_MAINBAR_SHOW_MISC_ICONS, &CMainFrame::OnToggleMainBarShowMiscIcons) + ON_COMMAND(ID_TREEVIEW_ON_LEFT, &CMainFrame::OnToggleTreeViewOnLeft) #ifdef MPT_ENABLE_PLAYBACK_TEST_MENU @@ -2629,11 +2635,16 @@ CMenu subMenu; VERIFY(subMenu.CreatePopupMenu()); + + subMenu.AppendMenu(MF_STRING | (visibleItems[MainToolBarItem::IconsFile] ? MF_CHECKED : 0), ID_MAINBAR_SHOW_FILE_ICONS, _T("&File Icons")); + subMenu.AppendMenu(MF_STRING | (visibleItems[MainToolBarItem::IconsEdit] ? MF_CHECKED : 0), ID_MAINBAR_SHOW_EDIT_ICONS, _T("&Edit Icons")); + subMenu.AppendMenu(MF_STRING | (visibleItems[MainToolBarItem::IconsPlayback] ? MF_CHECKED : 0), ID_MAINBAR_SHOW_PLAY_ICONS, _T("&Play / Record Icons")); subMenu.AppendMenu(MF_STRING | (visibleItems[MainToolBarItem::Octave] ? MF_CHECKED : 0), ID_MAINBAR_SHOW_OCTAVE, _T("Base &Octave")); subMenu.AppendMenu(MF_STRING | (visibleItems[MainToolBarItem::Tempo] ? MF_CHECKED : 0), ID_MAINBAR_SHOW_TEMPO, _T("&Tempo")); subMenu.AppendMenu(MF_STRING | (visibleItems[MainToolBarItem::Speed] ? MF_CHECKED : 0), ID_MAINBAR_SHOW_SPEED, _T("Ticks/&Row")); subMenu.AppendMenu(MF_STRING | (visibleItems[MainToolBarItem::RowsPerBeat] ? MF_CHECKED : 0), ID_MAINBAR_SHOW_ROWSPERBEAT, _T("Rows Per &Beat")); subMenu.AppendMenu(MF_STRING | (visibleItems[MainToolBarItem::GlobalVolume] ? MF_CHECKED : 0), ID_MAINBAR_SHOW_GLOBALVOLUME, _T("&Global Volume")); + subMenu.AppendMenu(MF_STRING | (visibleItems[MainToolBarItem::IconsMisc] ? MF_CHECKED : 0), ID_MAINBAR_SHOW_MISC_ICONS, _T("&Misc Icons")); subMenu.AppendMenu(MF_STRING | (visibleItems[MainToolBarItem::VUMeter] ? MF_CHECKED : 0), ID_MAINBAR_SHOW_VUMETER, _T("&VU Meters")); menu.AppendMenu(MF_POPUP, reinterpret_cast<UINT_PTR>(subMenu.Detach()), _T("Main Toolbar &Items")); } @@ -2645,6 +2656,10 @@ void CMainFrame::OnToggleMainBarShowRowsPerBeat() { OnToggleMainBarItem(MainToolBarItem::RowsPerBeat, ID_MAINBAR_SHOW_ROWSPERBEAT); } void CMainFrame::OnToggleMainBarShowGlobalVolume() { OnToggleMainBarItem(MainToolBarItem::GlobalVolume, ID_MAINBAR_SHOW_GLOBALVOLUME); } void CMainFrame::OnToggleMainBarShowVUMeter() { OnToggleMainBarItem(MainToolBarItem::VUMeter, ID_MAINBAR_SHOW_VUMETER); } +void CMainFrame::OnToggleMainBarShowFileIcons() { OnToggleMainBarItem(MainToolBarItem::IconsFile, ID_MAINBAR_SHOW_FILE_ICONS); } +void CMainFrame::OnToggleMainBarShowEditIcons() { OnToggleMainBarItem(MainToolBarItem::IconsEdit, ID_MAINBAR_SHOW_EDIT_ICONS); } +void CMainFrame::OnToggleMainBarShowPlayIcons() { OnToggleMainBarItem(MainToolBarItem::IconsPlayback, ID_MAINBAR_SHOW_PLAY_ICONS); } +void CMainFrame::OnToggleMainBarShowMiscIcons() { OnToggleMainBarItem(MainToolBarItem::IconsMisc, ID_MAINBAR_SHOW_MISC_ICONS); } void CMainFrame::OnToggleMainBarItem(MainToolBarItem item, UINT menuID) { @@ -2916,7 +2931,7 @@ bool CMainFrame::ShowUpdateIndicator(const UpdateCheckResult &result, const CString &releaseVersion, const CString &infoURL, bool showHighlight) { m_updateCheckResult = std::make_unique<UpdateCheckResult>(result); - if(m_wndToolBar.IsVisible()) + if(m_wndToolBar.IsVisible() && (TrackerSettings::Instance().mainToolBarVisibleItems & MainToolBarItem::IconsMisc)) { return m_wndToolBar.ShowUpdateInfo(releaseVersion, infoURL, showHighlight); } else Modified: branches/OpenMPT-1.32/mptrack/Mainbar.cpp ============================================================================== --- branches/OpenMPT-1.32/mptrack/Mainbar.cpp Sun Jun 15 22:33:15 2025 (r23526) +++ branches/OpenMPT-1.32/mptrack/Mainbar.cpp Sun Jun 15 22:34:12 2025 (r23527) @@ -163,40 +163,68 @@ enum ToolbarItemIndex { - PLAYCMD_INDEX = 10, // Play / Pause - EDITOCTAVE_INDEX = 13, // Base Octave - SPINOCTAVE_INDEX = EDITOCTAVE_INDEX + 1, // Spin Base Octave - DIVOCTAVE_INDEX = SPINOCTAVE_INDEX + 1, // Divider for vertical mode - TEMPOTEXT_INDEX = DIVOCTAVE_INDEX + 1, // Static "Tempo:" - EDITTEMPO_INDEX = TEMPOTEXT_INDEX + 1, // Edit Tempo - SPINTEMPO_INDEX = EDITTEMPO_INDEX + 1, // Spin Tempo - DIVTEMPO_INDEX = SPINTEMPO_INDEX + 1, // Divider for vertical mode - SPEEDTEXT_INDEX = DIVTEMPO_INDEX + 1, // Static "Speed:" - EDITSPEED_INDEX = SPEEDTEXT_INDEX + 1, // Edit Speed - SPINSPEED_INDEX = EDITSPEED_INDEX + 1, // Spin Speed - DIVSPEED_INDEX = SPINSPEED_INDEX + 1, // Divider for vertical mode - RPBTEXT_INDEX = DIVSPEED_INDEX + 1, // Static "Rows/Beat:" - EDITRPB_INDEX = RPBTEXT_INDEX + 1, // Edit Speed - SPINRPB_INDEX = EDITRPB_INDEX + 1, // Spin Speed - DIVRPB_INDEX = SPINRPB_INDEX + 1, // Divider for vertical mode - GLOBALVOLTEXT_INDEX = DIVRPB_INDEX + 1, // Static "Rows/Beat:" - EDITGLOBALVOL_INDEX = GLOBALVOLTEXT_INDEX + 1, // Edit Speed - SPINGLOBALVOL_INDEX = EDITGLOBALVOL_INDEX + 1, // Spin Speed - DIVGLOBALVOL_INDEX = SPINGLOBALVOL_INDEX + 1, // Divider at end - DIVVUMETER_INDEX = SPINGLOBALVOL_INDEX + 5, // Divider before VU Meters - VUMETER_INDEX = DIVVUMETER_INDEX + 1, // VU Meters + FILE_NEW_INDEX = 0, + FILE_OPEN_INDEX, + FILE_SAVE_INDEX, + FILE_DIVIDER_INDEX, + + EDIT_CUT_INDEX, + EDIT_COPY_INDEX, + EDIT_PASTE_INDEX, + EDIT_DIVIDER_INDEX, + + PLAY_MIDIRECORD_INDEX, + PLAY_STOP_INDEX, + PLAY_STARTPAUSE_INDEX, + PLAY_RESTART_INDEX, + PLAY_DIVIDER_INDEX, + + EDITOCTAVE_INDEX, + SPINOCTAVE_INDEX, + OCTAVE_DIVIDER_INDEX, + + TEMPOTEXT_INDEX, + EDITTEMPO_INDEX, + SPINTEMPO_INDEX, + TEMPO_DIVIDER_INDEX, + + SPEEDTEXT_INDEX, + EDITSPEED_INDEX, + SPINSPEED_INDEX, + SPEED_DIVIDER_INDEX, + + RPBTEXT_INDEX, + EDITRPB_INDEX, + SPINRPB_INDEX, + RPB_DIVIDER_INDEX, + + GLOBALVOLTEXT_INDEX, + EDITGLOBALVOL_INDEX, + SPINGLOBALVOL_INDEX, + GLOBALVOL_DIVIDER_INDEX, + + MISC_OPTIONS_INDEX, + MISC_PANIC_INDEX, + MISC_UPDATE_INDEX, + MISC_DIVIDER_INDEX, + + VUMETER_INDEX, + + NUM_TOOLBAR_INDEX }; -#define TOOLBAR_IMAGE_PAUSE 8 -#define TOOLBAR_IMAGE_PLAY 13 +enum +{ + TOOLBAR_IMAGE_PAUSE = 8, + TOOLBAR_IMAGE_PLAY = 13, +}; #define SCALEPIXELS(x) (HighDPISupport::ScalePixels(x, m_hWnd)) -#define TEXTFIELD_HEIGHT SCALEPIXELS(20) #define SPINNER_WIDTH SCALEPIXELS(16) #define SPINNER_HEIGHT SCALEPIXELS(20) #define VUMETER_WIDTH SCALEPIXELS(255) #define VUMETER_HEIGHT SCALEPIXELS(19) -#define TREEVIEW_PADDING SCALEPIXELS(3) + static UINT MainButtons[] = { @@ -240,6 +268,8 @@ ID_SEPARATOR, // VU Meter }; +static_assert(std::size(MainButtons) == NUM_TOOLBAR_INDEX); + enum { MAX_MIDI_DEVICES = 256 }; @@ -432,31 +462,50 @@ { const FlagSet<MainToolBarItem> visibleItems = TrackerSettings::Instance().mainToolBarVisibleItems.Get(); + SetButtonVisibility(FILE_NEW_INDEX, visibleItems[MainToolBarItem::IconsFile]); + SetButtonVisibility(FILE_OPEN_INDEX, visibleItems[MainToolBarItem::IconsFile]); + SetButtonVisibility(FILE_SAVE_INDEX, visibleItems[MainToolBarItem::IconsFile]); + SetButtonVisibility(FILE_DIVIDER_INDEX, visibleItems[MainToolBarItem::IconsFile]); + + SetButtonVisibility(EDIT_CUT_INDEX, visibleItems[MainToolBarItem::IconsEdit]); + SetButtonVisibility(EDIT_COPY_INDEX, visibleItems[MainToolBarItem::IconsEdit]); + SetButtonVisibility(EDIT_PASTE_INDEX, visibleItems[MainToolBarItem::IconsEdit]); + SetButtonVisibility(EDIT_DIVIDER_INDEX, visibleItems[MainToolBarItem::IconsEdit]); + + SetButtonVisibility(PLAY_MIDIRECORD_INDEX, visibleItems[MainToolBarItem::IconsPlayback]); + SetButtonVisibility(PLAY_STOP_INDEX, visibleItems[MainToolBarItem::IconsPlayback]); + SetButtonVisibility(PLAY_STARTPAUSE_INDEX, visibleItems[MainToolBarItem::IconsPlayback]); + SetButtonVisibility(PLAY_RESTART_INDEX, visibleItems[MainToolBarItem::IconsPlayback]); + SetButtonVisibility(PLAY_DIVIDER_INDEX, visibleItems[MainToolBarItem::IconsPlayback]); + + SetButtonVisibility(MISC_OPTIONS_INDEX, visibleItems[MainToolBarItem::IconsMisc]); + SetButtonVisibility(MISC_PANIC_INDEX, visibleItems[MainToolBarItem::IconsMisc]); + SetButtonVisibility(MISC_DIVIDER_INDEX, visibleItems.test_all(MainToolBarItem::IconsMisc | MainToolBarItem::VUMeter)); + UpdateControl(visibleItems[MainToolBarItem::Octave], m_EditOctave, EDITOCTAVE_INDEX, IDC_EDIT_BASEOCTAVE); UpdateControl(visibleItems[MainToolBarItem::Octave], m_SpinOctave, SPINOCTAVE_INDEX, IDC_SPIN_BASEOCTAVE); - SetButtonVisibility(DIVOCTAVE_INDEX, m_bVertical && visibleItems[MainToolBarItem::Octave]); + SetButtonVisibility(OCTAVE_DIVIDER_INDEX, m_bVertical && visibleItems[MainToolBarItem::Octave]); UpdateControl(visibleItems[MainToolBarItem::Tempo], m_StaticTempo, TEMPOTEXT_INDEX, IDC_TEXT_CURRENTTEMPO); UpdateControl(visibleItems[MainToolBarItem::Tempo], m_EditTempo, EDITTEMPO_INDEX, IDC_EDIT_CURRENTTEMPO); UpdateControl(visibleItems[MainToolBarItem::Tempo], m_SpinTempo, SPINTEMPO_INDEX, IDC_SPIN_CURRENTTEMPO); - SetButtonVisibility(DIVTEMPO_INDEX, m_bVertical && visibleItems[MainToolBarItem::Tempo]); + SetButtonVisibility(TEMPO_DIVIDER_INDEX, m_bVertical && visibleItems[MainToolBarItem::Tempo]); UpdateControl(visibleItems[MainToolBarItem::Speed], m_StaticSpeed, SPEEDTEXT_INDEX, IDC_TEXT_CURRENTSPEED); UpdateControl(visibleItems[MainToolBarItem::Speed], m_EditSpeed, EDITSPEED_INDEX, IDC_EDIT_CURRENTSPEED); UpdateControl(visibleItems[MainToolBarItem::Speed], m_SpinSpeed, SPINSPEED_INDEX, IDC_SPIN_CURRENTSPEED); - SetButtonVisibility(DIVSPEED_INDEX, m_bVertical && visibleItems[MainToolBarItem::Speed]); + SetButtonVisibility(SPEED_DIVIDER_INDEX, m_bVertical && visibleItems[MainToolBarItem::Speed]); UpdateControl(visibleItems[MainToolBarItem::RowsPerBeat], m_StaticRowsPerBeat, RPBTEXT_INDEX, IDC_TEXT_RPB); UpdateControl(visibleItems[MainToolBarItem::RowsPerBeat], m_EditRowsPerBeat, EDITRPB_INDEX, IDC_EDIT_RPB); UpdateControl(visibleItems[MainToolBarItem::RowsPerBeat], m_SpinRowsPerBeat, SPINRPB_INDEX, IDC_SPIN_RPB); - SetButtonVisibility(DIVRPB_INDEX, m_bVertical && visibleItems[MainToolBarItem::RowsPerBeat]); + SetButtonVisibility(RPB_DIVIDER_INDEX, m_bVertical && visibleItems[MainToolBarItem::RowsPerBeat]); UpdateControl(visibleItems[MainToolBarItem::GlobalVolume], m_StaticGlobalVolume, GLOBALVOLTEXT_INDEX, IDC_TEXT_GLOBALVOL); UpdateControl(visibleItems[MainToolBarItem::GlobalVolume], m_EditGlobalVolume, EDITGLOBALVOL_INDEX, IDC_EDIT_GLOBALVOL); UpdateControl(visibleItems[MainToolBarItem::GlobalVolume], m_SpinGlobalVolume, SPINGLOBALVOL_INDEX, IDC_SPIN_GLOBALVOL); - SetButtonVisibility(DIVGLOBALVOL_INDEX, visibleItems.test_any_except(MainToolBarItem::VUMeter)); + SetButtonVisibility(GLOBALVOL_DIVIDER_INDEX, visibleItems.test_any_except(MainToolBarItem::VUMeter)); - SetButtonVisibility(DIVVUMETER_INDEX, visibleItems[MainToolBarItem::VUMeter]); m_VuMeter.SetOrientation(!m_bVertical); if(m_bVertical) m_VuMeter.SetWindowPos(nullptr, 0, 0, VUMETER_HEIGHT, VUMETER_HEIGHT, SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE); @@ -470,6 +519,9 @@ { FlagSet<MainToolBarItem> visibleItems = TrackerSettings::Instance().mainToolBarVisibleItems.Get(); visibleItems.flip(item); + // At least one icon group must be visible, otherwise the toolbar collapses + if(!visibleItems[MainToolBarItem::AllIcons]) + visibleItems.flip(item); TrackerSettings::Instance().mainToolBarVisibleItems = visibleItems.value().as_enum(); RefreshToolbar(); return visibleItems[item]; @@ -552,7 +604,7 @@ { // Update play/pause button if(m_currentTempo == TEMPO(0, 0)) - SetButtonInfo(PLAYCMD_INDEX, ID_PLAYER_PAUSE, TBBS_BUTTON, TOOLBAR_IMAGE_PAUSE); + SetButtonInfo(PLAY_STARTPAUSE_INDEX, ID_PLAYER_PAUSE, TBBS_BUTTON, TOOLBAR_IMAGE_PAUSE); // Update Speed int nSpeed = pSndFile->m_PlayState.m_nMusicSpeed; if(nSpeed != m_currentSpeed && focus != &m_EditSpeed && visibleItems[MainToolBarItem::Speed]) @@ -596,7 +648,7 @@ if(m_currentTempo > TEMPO(0, 0)) { EnableEdit(m_EditTempo, m_SpinTempo, false); - SetButtonInfo(PLAYCMD_INDEX, ID_PLAYER_PLAY, TBBS_BUTTON, TOOLBAR_IMAGE_PLAY); + SetButtonInfo(PLAY_STARTPAUSE_INDEX, ID_PLAYER_PLAY, TBBS_BUTTON, TOOLBAR_IMAGE_PLAY); } if(m_currentSpeed != -1) EnableEdit(m_EditSpeed, m_SpinSpeed, false); @@ -952,8 +1004,8 @@ m_pModTreeData->SubclassDlgItem(IDC_TREEDATA, this); m_pModTree = new CModTree(m_pModTreeData); m_pModTree->SubclassDlgItem(IDC_TREEVIEW, this); - m_dwStatus = 0; - m_sizeDefault.cx = HighDPISupport::ScalePixels(TrackerSettings::Instance().glTreeWindowWidth, m_hWnd) + TREEVIEW_PADDING; + m_status.reset(); + m_sizeDefault.cx = HighDPISupport::ScalePixels(TrackerSettings::Instance().glTreeWindowWidth, m_hWnd) + Padding(); m_sizeDefault.cy = 32767; return l; } @@ -1045,6 +1097,12 @@ } +int CModTreeBar::Padding() const +{ + return HighDPISupport::ScalePixels(3, m_hWnd); +} + + void CModTreeBar::RecalcLayout() { CRect rect; @@ -1054,7 +1112,7 @@ int cytree, cydata, cyavail; GetClientRect(&rect); - const int padding = TREEVIEW_PADDING; + const int padding = Padding(); cyavail = rect.Height() - padding; if(cyavail < 0) cyavail = 0; cytree = (cyavail * m_nTreeSplitRatio) >> 8; @@ -1088,7 +1146,7 @@ CSize sz; m_sizeDefault.cx = width; m_sizeDefault.cy = 32767; - const int padding = TREEVIEW_PADDING; + const int padding = Padding(); sz.cx = width + padding; if(sz.cx < padding + 1) sz.cx = padding + 1; @@ -1102,13 +1160,13 @@ CRect rect; GetClientRect(&rect); - if((m_dwStatus & (MTB_CAPTURE|MTB_DRAGGING)) && (::GetCapture() != m_hWnd)) + if(m_status[MTB_CAPTURE | MTB_DRAGGING] && (::GetCapture() != m_hWnd)) { CancelTracking(); } - if(m_dwStatus & MTB_DRAGGING) + if(m_status[MTB_DRAGGING]) { - if(m_dwStatus & MTB_VERTICAL) + if(m_status[MTB_VERTICAL]) { if(m_pModTree) { @@ -1118,36 +1176,36 @@ } pt.y -= ptDragging.y; pt.y = std::clamp(static_cast<int>(pt.y), 0, rect.Height()); - if((!(m_dwStatus & MTB_TRACKER)) || (pt.y != static_cast<int>(m_nTrackPos))) + if(!m_status[MTB_TRACKER] || (pt.y != static_cast<int>(m_nTrackPos))) { - if(m_dwStatus & MTB_TRACKER) + if(m_status[MTB_TRACKER]) OnInvertTracker(m_nTrackPos); m_nTrackPos = pt.y; OnInvertTracker(m_nTrackPos); - m_dwStatus |= MTB_TRACKER; + m_status.set(MTB_TRACKER); } } else { pt.x -= ptDragging.x; if(BarOnLeft()) - pt.x += (m_cxOriginal - TREEVIEW_PADDING); + pt.x += (m_cxOriginal - Padding()); else pt.x = m_cxOriginal - pt.x; pt.x = std::max(pt.x, LONG(0)); - if((!(m_dwStatus & MTB_TRACKER)) || (pt.x != static_cast<int>(m_nTrackPos))) + if(!m_status[MTB_TRACKER] || (pt.x != static_cast<int>(m_nTrackPos))) { - if(m_dwStatus & MTB_TRACKER) + if(m_status[MTB_TRACKER]) OnInvertTracker(m_nTrackPos); m_nTrackPos = pt.x; OnInvertTracker(m_nTrackPos); - m_dwStatus |= MTB_TRACKER; + m_status.set(MTB_TRACKER); } } } else { UINT nCursor = 0; - const int padding = TREEVIEW_PADDING; + const int padding = Padding(); const int extraPadding = HighDPISupport::ScalePixels(2, m_hWnd); if(BarOnLeft()) { @@ -1176,27 +1234,27 @@ } if(nCursor) { - UINT nDir = (nCursor == AFX_IDC_VSPLITBAR) ? MTB_VERTICAL : 0; - bool load = false; - if(!(m_dwStatus & MTB_CAPTURE)) + const bool wasVertical = m_status[MTB_VERTICAL]; + bool vertical = (nCursor == AFX_IDC_VSPLITBAR); + bool setCursor = false; + if(!m_status[MTB_CAPTURE]) { - m_dwStatus |= MTB_CAPTURE; + m_status.set(MTB_CAPTURE); SetCapture(); - load = true; + setCursor = true; } else { - if(nDir != (m_dwStatus & MTB_VERTICAL)) - load = true; + if(vertical != wasVertical) + setCursor = true; } - m_dwStatus &= ~MTB_VERTICAL; - m_dwStatus |= nDir; - if(load) + m_status.set(MTB_VERTICAL, vertical); + if(setCursor) SetCursor(theApp.LoadCursor(nCursor)); } else { - if(m_dwStatus & MTB_CAPTURE) + if(m_status[MTB_CAPTURE]) { - m_dwStatus &= ~MTB_CAPTURE; + m_status.reset(MTB_CAPTURE); ReleaseCapture(); SetCursor(LoadCursor(NULL, IDC_ARROW)); } @@ -1207,14 +1265,14 @@ void CModTreeBar::DoLButtonDown(CPoint pt) { - if((m_dwStatus & MTB_CAPTURE) && (!(m_dwStatus & MTB_DRAGGING))) + if(m_status[MTB_CAPTURE] && !m_status[MTB_DRAGGING]) { CRect rect; GetWindowRect(&rect); m_cxOriginal = rect.Width(); m_cyOriginal = rect.Height(); ptDragging = pt; - m_dwStatus |= MTB_DRAGGING; + m_status.set(MTB_DRAGGING); DoMouseMove(pt); } } @@ -1222,18 +1280,18 @@ void CModTreeBar::DoLButtonUp() { - if(m_dwStatus & MTB_DRAGGING) + if(m_status[MTB_DRAGGING]) { CRect rect; - m_dwStatus &= ~MTB_DRAGGING; - if(m_dwStatus & MTB_TRACKER) + m_status.reset(MTB_DRAGGING); + if(m_status[MTB_TRACKER]) { OnInvertTracker(m_nTrackPos); - m_dwStatus &= ~MTB_TRACKER; + m_status.reset(MTB_TRACKER); } - const int padding = TREEVIEW_PADDING; - if(m_dwStatus & MTB_VERTICAL) + const int padding = Padding(); + if(m_status[MTB_VERTICAL]) { GetClientRect(&rect); int cyavail = rect.Height() - padding; @@ -1264,15 +1322,15 @@ void CModTreeBar::CancelTracking() { - if(m_dwStatus & MTB_TRACKER) + if(m_status[MTB_TRACKER]) { OnInvertTracker(m_nTrackPos); - m_dwStatus &= ~MTB_TRACKER; + m_status.reset(MTB_TRACKER); } - m_dwStatus &= ~MTB_DRAGGING; - if(m_dwStatus & MTB_CAPTURE) + m_status.reset(MTB_DRAGGING); + if(m_status[MTB_CAPTURE]) { - m_dwStatus &= ~MTB_CAPTURE; + m_status.reset(MTB_CAPTURE); ReleaseCapture(); } } @@ -1287,8 +1345,8 @@ CRect rect; GetClientRect(&rect); - const int padding = TREEVIEW_PADDING + 1; - if(m_dwStatus & MTB_VERTICAL) + const int padding = Padding() + 1; + if(m_status[MTB_VERTICAL]) { rect.top = x; rect.bottom = rect.top + padding; @@ -1358,9 +1416,9 @@ if(lpncsp) { if(BarOnLeft()) - lpncsp->rgrc[0].right -= TREEVIEW_PADDING; + lpncsp->rgrc[0].right -= Padding(); else - lpncsp->rgrc[0].left += TREEVIEW_PADDING; + lpncsp->rgrc[0].left += Padding(); lpncsp->rgrc[0].right = std::max(lpncsp->rgrc[0].left, lpncsp->rgrc[0].right); } } @@ -1373,9 +1431,9 @@ GetWindowRect(&rect); rect.DeflateRect(1, 1); if(BarOnLeft()) - rect.right -= TREEVIEW_PADDING; + rect.right -= Padding(); else - rect.left += TREEVIEW_PADDING; + rect.left += Padding(); if(!rect.PtInRect(point)) return HTBORDER; return CDialogBar::OnNcHitTest(point); @@ -1394,9 +1452,9 @@ rect.left = 0; rect.top = 0; if(BarOnLeft()) - rect.left = rect.right - TREEVIEW_PADDING; + rect.left = rect.right - Padding(); else - rect.right = rect.left + TREEVIEW_PADDING; + rect.right = rect.left + Padding(); if((rect.left < rect.right) && (rect.top < rect.bottom)) { CDC *pDC = GetWindowDC(); Modified: branches/OpenMPT-1.32/mptrack/Mainbar.h ============================================================================== --- branches/OpenMPT-1.32/mptrack/Mainbar.h Sun Jun 15 22:33:15 2025 (r23526) +++ branches/OpenMPT-1.32/mptrack/Mainbar.h Sun Jun 15 22:34:12 2025 (r23527) @@ -19,7 +19,7 @@ OPENMPT_NAMESPACE_BEGIN -enum class MainToolBarItem : uint8; +enum class MainToolBarItem : uint32; class CMainToolBar; class CStereoVU: public CStatic @@ -165,7 +165,7 @@ class CModTreeBar: public CDialogBar { -protected: +public: enum Status { MTB_VERTICAL = 0x01, @@ -174,7 +174,8 @@ MTB_TRACKER = 0x08, }; - DWORD m_dwStatus = 0; // MTB_XXXX +protected: + FlagSet<Status> m_status; UINT m_nCursorDrag = 0; CPoint ptDragging; UINT m_cxOriginal = 0, m_cyOriginal = 0, m_nTrackPos = 0; @@ -223,6 +224,8 @@ void CloseTreeFilter(); void CancelTimer(); + int Padding() const; + protected: //{{AFX_MSG(CModTreeBar) afx_msg void OnNcPaint(); @@ -245,5 +248,7 @@ DECLARE_MESSAGE_MAP() }; +DECLARE_FLAGSET(CModTreeBar::Status) + OPENMPT_NAMESPACE_END Modified: branches/OpenMPT-1.32/mptrack/Mainfrm.h ============================================================================== --- branches/OpenMPT-1.32/mptrack/Mainfrm.h Sun Jun 15 22:33:15 2025 (r23526) +++ branches/OpenMPT-1.32/mptrack/Mainfrm.h Sun Jun 15 22:34:12 2025 (r23527) @@ -38,7 +38,7 @@ struct UpdateHint; struct MODPLUGDIB; enum class MidiSetup: int32; -enum class MainToolBarItem : uint8; +enum class MainToolBarItem : uint32; enum SoundDeviceStopMode : int; namespace SoundDevice { class Base; @@ -465,6 +465,10 @@ afx_msg void OnToggleMainBarShowRowsPerBeat(); afx_msg void OnToggleMainBarShowGlobalVolume(); afx_msg void OnToggleMainBarShowVUMeter(); + afx_msg void OnToggleMainBarShowFileIcons(); + afx_msg void OnToggleMainBarShowEditIcons(); + afx_msg void OnToggleMainBarShowPlayIcons(); + afx_msg void OnToggleMainBarShowMiscIcons(); afx_msg void OnToggleMainBarItem(MainToolBarItem item, UINT menuID); afx_msg void OnToggleTreeViewOnLeft(); Modified: branches/OpenMPT-1.32/mptrack/TrackerSettings.cpp ============================================================================== --- branches/OpenMPT-1.32/mptrack/TrackerSettings.cpp Sun Jun 15 22:33:15 2025 (r23526) +++ branches/OpenMPT-1.32/mptrack/TrackerSettings.cpp Sun Jun 15 22:34:12 2025 (r23527) @@ -912,6 +912,15 @@ // Migrate Tuning data MigrateTunings(storedVersion); + // At least one icon group must be visible, otherwise the toolbar collapses. + // If all icon groups are gone, just re-activate them all. This also serves as an upgrade path from older versions where icons were always visible. + FlagSet<MainToolBarItem> toolbarItems = mainToolBarVisibleItems.Get(); + if(!toolbarItems[MainToolBarItem::AllIcons]) + { + toolbarItems.set(MainToolBarItem::AllIcons); + mainToolBarVisibleItems = toolbarItems.value().as_enum(); + } + // Sanitize MIDI import data if(midiImportPatternLen < ModSpecs::mptm.patternRowsMin || midiImportPatternLen > ModSpecs::mptm.patternRowsMax) midiImportPatternLen = 128; Modified: branches/OpenMPT-1.32/mptrack/TrackerSettings.h ============================================================================== --- branches/OpenMPT-1.32/mptrack/TrackerSettings.h Sun Jun 15 22:33:15 2025 (r23526) +++ branches/OpenMPT-1.32/mptrack/TrackerSettings.h Sun Jun 15 22:34:12 2025 (r23527) @@ -406,7 +406,7 @@ template<> inline SettingValue ToSettingValue(const NewFileAction &val) { return SettingValue(int32(val)); } template<> inline NewFileAction FromSettingValue(const SettingValue &val) { return NewFileAction(val.as<int32>()); } -enum class MainToolBarItem : uint8 +enum class MainToolBarItem : uint32 { Octave = 0x01, Tempo = 0x02, @@ -414,8 +414,13 @@ RowsPerBeat = 0x08, GlobalVolume = 0x10, VUMeter = 0x20, + IconsFile = 0x40, + IconsEdit = 0x80, + IconsPlayback = 0x100, + IconsMisc = 0x200, - Default = Octave | Tempo | Speed | RowsPerBeat | GlobalVolume | VUMeter + AllIcons = IconsFile | IconsEdit | IconsPlayback | IconsMisc, + Default = Octave | Tempo | Speed | RowsPerBeat | GlobalVolume | VUMeter | AllIcons }; DECLARE_FLAGSET(MainToolBarItem) Modified: branches/OpenMPT-1.32/mptrack/resource.h ============================================================================== --- branches/OpenMPT-1.32/mptrack/resource.h Sun Jun 15 22:33:15 2025 (r23526) +++ branches/OpenMPT-1.32/mptrack/resource.h Sun Jun 15 22:34:12 2025 (r23527) @@ -1185,10 +1185,14 @@ #define ID_MAINBAR_SHOW_ROWSPERBEAT 36040 #define ID_MAINBAR_SHOW_GLOBALVOLUME 36041 #define ID_MAINBAR_SHOW_VUMETER 36042 -#define ID_TREEVIEW_ON_LEFT 36043 -#define ID_KEYPRESET_MPT 36044 -#define ID_KEYPRESET_IT 36045 -#define ID_KEYPRESET_FT2 36046 +#define ID_MAINBAR_SHOW_FILE_ICONS 36043 +#define ID_MAINBAR_SHOW_EDIT_ICONS 36044 +#define ID_MAINBAR_SHOW_PLAY_ICONS 36045 +#define ID_MAINBAR_SHOW_MISC_ICONS 36046 +#define ID_TREEVIEW_ON_LEFT 36047 +#define ID_KEYPRESET_MPT 36048 +#define ID_KEYPRESET_IT 36049 +#define ID_KEYPRESET_FT2 36050 #define ID_SELECTINST 36100 // From here: Command range [ID_SELECTINST, ID_SELECTINST + MAX_INSTRUMENTS] #define ID_PLUG_RECORDAUTOMATION 37003 |
From: <sv...@op...> - 2025-06-15 20:33:34
|
Author: sagamusix Date: Sun Jun 15 22:33:15 2025 New Revision: 23526 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=23526 Log: [Imp] In stream/MIDI/VGM export, pre-populate the subsong field for single-subsong export to the currently edited subsong (https://forum.openmpt.org/index.php?topic=7340.0). Modified: trunk/OpenMPT/mptrack/Mod2wave.cpp trunk/OpenMPT/mptrack/Moddoc.cpp trunk/OpenMPT/mptrack/Moddoc.h trunk/OpenMPT/mptrack/OPLExport.cpp trunk/OpenMPT/mptrack/mod2midi.cpp trunk/OpenMPT/mptrack/mod2wave.h Modified: trunk/OpenMPT/mptrack/Mod2wave.cpp ============================================================================== --- trunk/OpenMPT/mptrack/Mod2wave.cpp Sun Jun 15 22:32:01 2025 (r23525) +++ trunk/OpenMPT/mptrack/Mod2wave.cpp Sun Jun 15 22:33:15 2025 (r23526) @@ -75,11 +75,11 @@ END_MESSAGE_MAP() -CWaveConvert::CWaveConvert(CWnd *parent, ORDERINDEX minOrder, ORDERINDEX maxOrder, ORDERINDEX numOrders, CSoundFile &sndFile, const std::vector<EncoderFactoryBase*> &encFactories) +CWaveConvert::CWaveConvert(CWnd *parent, ORDERINDEX minOrder, ORDERINDEX maxOrder, ORDERINDEX numOrders, CModDoc &modDoc, const std::vector<EncoderFactoryBase*> &encFactories) : DialogBase(IDD_WAVECONVERT, parent) , m_Settings(theApp.GetSettings(), encFactories) - , m_SndFile(sndFile) - , m_subSongs{sndFile.GetAllSubSongs()} + , m_SndFile(modDoc.GetSoundFile()) + , m_subSongs{ modDoc.GetSoundFile().GetAllSubSongs()} , m_nNumOrders{numOrders} { MPT_ASSERT(!encFactories.empty()); @@ -90,6 +90,7 @@ m_Settings.minOrder = minOrder; m_Settings.maxOrder = maxOrder; } + m_selectedSong = modDoc.GetSubsongForCurrentEditPos(m_subSongs); } @@ -206,6 +207,7 @@ UpdateDialog(); + m_locked = false; return TRUE; } @@ -570,6 +572,9 @@ void CWaveConvert::OnSubsongChanged() { + if(m_locked) + return; + CheckRadioButton(IDC_RADIO1, IDC_RADIO3, IDC_RADIO1); BOOL ok = FALSE; const auto newSubSong = std::clamp(static_cast<size_t>(GetDlgItemInt(IDC_EDIT12, &ok, FALSE)), size_t(1), m_subSongs.size()) - 1; if(m_selectedSong == newSubSong || !ok) @@ -601,9 +606,6 @@ m_SpinMinOrder.EnableWindow(sel == IDC_RADIO2); m_SpinMaxOrder.EnableWindow(sel == IDC_RADIO2); - GetDlgItem(IDC_EDIT12)->EnableWindow(sel == IDC_RADIO1); - m_SpinSubsongIndex.EnableWindow(sel == IDC_RADIO1); - // No free slots => Cannot do instrument- or channel-based export to sample BOOL canDoMultiExport = (IsDlgButtonChecked(IDC_RADIO4) != BST_UNCHECKED /* normal export */ || m_CbnSampleSlot.GetItemData(0) == 0 /* "free slot" is in list */) ? TRUE : FALSE; GetDlgItem(IDC_CHECK4)->EnableWindow(canDoMultiExport); Modified: trunk/OpenMPT/mptrack/Moddoc.cpp ============================================================================== --- trunk/OpenMPT/mptrack/Moddoc.cpp Sun Jun 15 22:32:01 2025 (r23525) +++ trunk/OpenMPT/mptrack/Moddoc.cpp Sun Jun 15 22:33:15 2025 (r23526) @@ -1690,7 +1690,7 @@ if ((!pMainFrm) || (!m_SndFile.GetType()) || encFactories.empty()) return; - CWaveConvert wsdlg(pMainFrm, nMinOrder, nMaxOrder, m_SndFile.Order().GetLengthTailTrimmed() - 1, m_SndFile, encFactories); + CWaveConvert wsdlg(pMainFrm, nMinOrder, nMaxOrder, m_SndFile.Order().GetLengthTailTrimmed() - 1, *this, encFactories); { BypassInputHandler bih; wsdlg.m_Settings.normalize = TrackerSettings::Instance().ExportNormalize; @@ -3237,6 +3237,34 @@ } +size_t CModDoc::GetSubsongForCurrentEditPos(const std::vector<SubSong> &subsongs) const +{ + const SEQUENCEINDEX seq = m_SndFile.Order.GetCurrentSequenceIndex(); + ORDERINDEX ord = 0; + if(auto *lastActiveFrame = CChildFrame::LastActiveFrame(); lastActiveFrame != nullptr && lastActiveFrame->GetActiveDocument() == this) + { + if(lastActiveFrame->IsPatternView()) + lastActiveFrame->SaveAllViewStates(); + ord = lastActiveFrame->GetPatternViewState().nOrder; + } + + // Note: This is just an estimation. If subsongs have overlapping order ranges + // (like in Unreal Engine modules where the first pattern of each subsong is found at the start of the order list), + // then we may return the wrong subsong index. + size_t candidate = subsongs.size(); + for(size_t i = 0; i < subsongs.size(); i++) + { + const SubSong &subsong = subsongs[i]; + if(subsong.sequence != seq) + continue; + if(mpt::is_in_range(ord, subsong.startOrder, subsong.endOrder)) + return i; + candidate = i; + } + return candidate; +} + + // Store all view positions t settings file void CModDoc::SerializeViews() const { Modified: trunk/OpenMPT/mptrack/Moddoc.h ============================================================================== --- trunk/OpenMPT/mptrack/Moddoc.h Sun Jun 15 22:32:01 2025 (r23525) +++ trunk/OpenMPT/mptrack/Moddoc.h Sun Jun 15 22:33:15 2025 (r23526) @@ -407,6 +407,8 @@ ModCommand::NOTE GetNoteWithBaseOctave(int noteOffset, INSTRUMENTINDEX instr) const; INSTRUMENTINDEX GetParentInstrumentWithSameName(SAMPLEINDEX smp) const; + size_t GetSubsongForCurrentEditPos(const std::vector<SubSong> &subsongs) const; + // Convert a linear volume property to decibels, and format the value as a readable string static CString LinearToDecibelsString(double value, double valueAtZeroDB); // Convert a linear volume property to decibels Modified: trunk/OpenMPT/mptrack/OPLExport.cpp ============================================================================== --- trunk/OpenMPT/mptrack/OPLExport.cpp Sun Jun 15 22:32:01 2025 (r23525) +++ trunk/OpenMPT/mptrack/OPLExport.cpp Sun Jun 15 22:33:15 2025 (r23526) @@ -362,6 +362,7 @@ , m_modDoc{modDoc} , m_subSongs{modDoc.GetSoundFile().GetAllSubSongs()} { + m_selectedSong = m_modDoc.GetSubsongForCurrentEditPos(m_subSongs); } BOOL OnInitDialog() override Modified: trunk/OpenMPT/mptrack/mod2midi.cpp ============================================================================== --- trunk/OpenMPT/mptrack/mod2midi.cpp Sun Jun 15 22:32:01 2025 (r23525) +++ trunk/OpenMPT/mptrack/mod2midi.cpp Sun Jun 15 22:33:15 2025 (r23526) @@ -671,6 +671,7 @@ } } } + m_selectedSong = m_modDoc.GetSubsongForCurrentEditPos(m_subSongs); } Modified: trunk/OpenMPT/mptrack/mod2wave.h ============================================================================== --- trunk/OpenMPT/mptrack/mod2wave.h Sun Jun 15 22:32:01 2025 (r23525) +++ trunk/OpenMPT/mptrack/mod2wave.h Sun Jun 15 22:33:15 2025 (r23526) @@ -22,6 +22,7 @@ OPENMPT_NAMESPACE_BEGIN +class CModDoc; class CSoundFile; struct SubSong; @@ -77,9 +78,10 @@ CEdit m_EditGenre; size_t m_selectedSong = 0; const ORDERINDEX m_nNumOrders; + bool m_locked = true; public: - CWaveConvert(CWnd *parent, ORDERINDEX minOrder, ORDERINDEX maxOrder, ORDERINDEX numOrders, CSoundFile &sndFile, const std::vector<EncoderFactoryBase *> &encFactories); + CWaveConvert(CWnd *parent, ORDERINDEX minOrder, ORDERINDEX maxOrder, ORDERINDEX numOrders, CModDoc &modDoc, const std::vector<EncoderFactoryBase *> &encFactories); ~CWaveConvert(); private: |
From: <sv...@op...> - 2025-06-15 20:32:22
|
Author: sagamusix Date: Sun Jun 15 22:32:01 2025 New Revision: 23525 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=23525 Log: [Imp] Main toolbar: Allow icon groups to be hidden as well. At least one icon group needs to be always visible, though (https://bugs.openmpt.org/view.php?id=1889). Modified: trunk/OpenMPT/mptrack/MainFrm.cpp trunk/OpenMPT/mptrack/Mainbar.cpp trunk/OpenMPT/mptrack/Mainbar.h trunk/OpenMPT/mptrack/Mainfrm.h trunk/OpenMPT/mptrack/TrackerSettings.cpp trunk/OpenMPT/mptrack/TrackerSettings.h trunk/OpenMPT/mptrack/resource.h Modified: trunk/OpenMPT/mptrack/MainFrm.cpp ============================================================================== --- trunk/OpenMPT/mptrack/MainFrm.cpp Sun Jun 15 22:27:11 2025 (r23524) +++ trunk/OpenMPT/mptrack/MainFrm.cpp Sun Jun 15 22:32:01 2025 (r23525) @@ -136,12 +136,18 @@ #endif // MPT_ENABLE_UPDATE ON_COMMAND(ID_HELP_SHOWSETTINGSFOLDER, &CMainFrame::OnShowSettingsFolder) ON_COMMAND(ID_HELPSHOW, &CMainFrame::OnHelp) + ON_COMMAND(ID_MAINBAR_SHOW_OCTAVE, &CMainFrame::OnToggleMainBarShowOctave) ON_COMMAND(ID_MAINBAR_SHOW_TEMPO, &CMainFrame::OnToggleMainBarShowTempo) ON_COMMAND(ID_MAINBAR_SHOW_SPEED, &CMainFrame::OnToggleMainBarShowSpeed) ON_COMMAND(ID_MAINBAR_SHOW_ROWSPERBEAT, &CMainFrame::OnToggleMainBarShowRowsPerBeat) ON_COMMAND(ID_MAINBAR_SHOW_GLOBALVOLUME, &CMainFrame::OnToggleMainBarShowGlobalVolume) ON_COMMAND(ID_MAINBAR_SHOW_VUMETER, &CMainFrame::OnToggleMainBarShowVUMeter) + ON_COMMAND(ID_MAINBAR_SHOW_FILE_ICONS, &CMainFrame::OnToggleMainBarShowFileIcons) + ON_COMMAND(ID_MAINBAR_SHOW_EDIT_ICONS, &CMainFrame::OnToggleMainBarShowEditIcons) + ON_COMMAND(ID_MAINBAR_SHOW_PLAY_ICONS, &CMainFrame::OnToggleMainBarShowPlayIcons) + ON_COMMAND(ID_MAINBAR_SHOW_MISC_ICONS, &CMainFrame::OnToggleMainBarShowMiscIcons) + ON_COMMAND(ID_TREEVIEW_ON_LEFT, &CMainFrame::OnToggleTreeViewOnLeft) #ifdef MPT_ENABLE_PLAYBACK_TEST_MENU @@ -2629,11 +2635,16 @@ CMenu subMenu; VERIFY(subMenu.CreatePopupMenu()); + + subMenu.AppendMenu(MF_STRING | (visibleItems[MainToolBarItem::IconsFile] ? MF_CHECKED : 0), ID_MAINBAR_SHOW_FILE_ICONS, _T("&File Icons")); + subMenu.AppendMenu(MF_STRING | (visibleItems[MainToolBarItem::IconsEdit] ? MF_CHECKED : 0), ID_MAINBAR_SHOW_EDIT_ICONS, _T("&Edit Icons")); + subMenu.AppendMenu(MF_STRING | (visibleItems[MainToolBarItem::IconsPlayback] ? MF_CHECKED : 0), ID_MAINBAR_SHOW_PLAY_ICONS, _T("&Play / Record Icons")); subMenu.AppendMenu(MF_STRING | (visibleItems[MainToolBarItem::Octave] ? MF_CHECKED : 0), ID_MAINBAR_SHOW_OCTAVE, _T("Base &Octave")); subMenu.AppendMenu(MF_STRING | (visibleItems[MainToolBarItem::Tempo] ? MF_CHECKED : 0), ID_MAINBAR_SHOW_TEMPO, _T("&Tempo")); subMenu.AppendMenu(MF_STRING | (visibleItems[MainToolBarItem::Speed] ? MF_CHECKED : 0), ID_MAINBAR_SHOW_SPEED, _T("Ticks/&Row")); subMenu.AppendMenu(MF_STRING | (visibleItems[MainToolBarItem::RowsPerBeat] ? MF_CHECKED : 0), ID_MAINBAR_SHOW_ROWSPERBEAT, _T("Rows Per &Beat")); subMenu.AppendMenu(MF_STRING | (visibleItems[MainToolBarItem::GlobalVolume] ? MF_CHECKED : 0), ID_MAINBAR_SHOW_GLOBALVOLUME, _T("&Global Volume")); + subMenu.AppendMenu(MF_STRING | (visibleItems[MainToolBarItem::IconsMisc] ? MF_CHECKED : 0), ID_MAINBAR_SHOW_MISC_ICONS, _T("&Misc Icons")); subMenu.AppendMenu(MF_STRING | (visibleItems[MainToolBarItem::VUMeter] ? MF_CHECKED : 0), ID_MAINBAR_SHOW_VUMETER, _T("&VU Meters")); menu.AppendMenu(MF_POPUP, reinterpret_cast<UINT_PTR>(subMenu.Detach()), _T("Main Toolbar &Items")); } @@ -2645,6 +2656,10 @@ void CMainFrame::OnToggleMainBarShowRowsPerBeat() { OnToggleMainBarItem(MainToolBarItem::RowsPerBeat, ID_MAINBAR_SHOW_ROWSPERBEAT); } void CMainFrame::OnToggleMainBarShowGlobalVolume() { OnToggleMainBarItem(MainToolBarItem::GlobalVolume, ID_MAINBAR_SHOW_GLOBALVOLUME); } void CMainFrame::OnToggleMainBarShowVUMeter() { OnToggleMainBarItem(MainToolBarItem::VUMeter, ID_MAINBAR_SHOW_VUMETER); } +void CMainFrame::OnToggleMainBarShowFileIcons() { OnToggleMainBarItem(MainToolBarItem::IconsFile, ID_MAINBAR_SHOW_FILE_ICONS); } +void CMainFrame::OnToggleMainBarShowEditIcons() { OnToggleMainBarItem(MainToolBarItem::IconsEdit, ID_MAINBAR_SHOW_EDIT_ICONS); } +void CMainFrame::OnToggleMainBarShowPlayIcons() { OnToggleMainBarItem(MainToolBarItem::IconsPlayback, ID_MAINBAR_SHOW_PLAY_ICONS); } +void CMainFrame::OnToggleMainBarShowMiscIcons() { OnToggleMainBarItem(MainToolBarItem::IconsMisc, ID_MAINBAR_SHOW_MISC_ICONS); } void CMainFrame::OnToggleMainBarItem(MainToolBarItem item, UINT menuID) { @@ -2916,7 +2931,7 @@ bool CMainFrame::ShowUpdateIndicator(const UpdateCheckResult &result, const CString &releaseVersion, const CString &infoURL, bool showHighlight) { m_updateCheckResult = std::make_unique<UpdateCheckResult>(result); - if(m_wndToolBar.IsVisible()) + if(m_wndToolBar.IsVisible() && (TrackerSettings::Instance().mainToolBarVisibleItems & MainToolBarItem::IconsMisc)) { return m_wndToolBar.ShowUpdateInfo(releaseVersion, infoURL, showHighlight); } else Modified: trunk/OpenMPT/mptrack/Mainbar.cpp ============================================================================== --- trunk/OpenMPT/mptrack/Mainbar.cpp Sun Jun 15 22:27:11 2025 (r23524) +++ trunk/OpenMPT/mptrack/Mainbar.cpp Sun Jun 15 22:32:01 2025 (r23525) @@ -163,32 +163,61 @@ enum ToolbarItemIndex { - PLAYCMD_INDEX = 10, // Play / Pause - EDITOCTAVE_INDEX = 13, // Base Octave - SPINOCTAVE_INDEX = EDITOCTAVE_INDEX + 1, // Spin Base Octave - DIVOCTAVE_INDEX = SPINOCTAVE_INDEX + 1, // Divider for vertical mode - TEMPOTEXT_INDEX = DIVOCTAVE_INDEX + 1, // Static "Tempo:" - EDITTEMPO_INDEX = TEMPOTEXT_INDEX + 1, // Edit Tempo - SPINTEMPO_INDEX = EDITTEMPO_INDEX + 1, // Spin Tempo - DIVTEMPO_INDEX = SPINTEMPO_INDEX + 1, // Divider for vertical mode - SPEEDTEXT_INDEX = DIVTEMPO_INDEX + 1, // Static "Speed:" - EDITSPEED_INDEX = SPEEDTEXT_INDEX + 1, // Edit Speed - SPINSPEED_INDEX = EDITSPEED_INDEX + 1, // Spin Speed - DIVSPEED_INDEX = SPINSPEED_INDEX + 1, // Divider for vertical mode - RPBTEXT_INDEX = DIVSPEED_INDEX + 1, // Static "Rows/Beat:" - EDITRPB_INDEX = RPBTEXT_INDEX + 1, // Edit Speed - SPINRPB_INDEX = EDITRPB_INDEX + 1, // Spin Speed - DIVRPB_INDEX = SPINRPB_INDEX + 1, // Divider for vertical mode - GLOBALVOLTEXT_INDEX = DIVRPB_INDEX + 1, // Static "Rows/Beat:" - EDITGLOBALVOL_INDEX = GLOBALVOLTEXT_INDEX + 1, // Edit Speed - SPINGLOBALVOL_INDEX = EDITGLOBALVOL_INDEX + 1, // Spin Speed - DIVGLOBALVOL_INDEX = SPINGLOBALVOL_INDEX + 1, // Divider at end - DIVVUMETER_INDEX = SPINGLOBALVOL_INDEX + 5, // Divider before VU Meters - VUMETER_INDEX = DIVVUMETER_INDEX + 1, // VU Meters + FILE_NEW_INDEX = 0, + FILE_OPEN_INDEX, + FILE_SAVE_INDEX, + FILE_DIVIDER_INDEX, + + EDIT_CUT_INDEX, + EDIT_COPY_INDEX, + EDIT_PASTE_INDEX, + EDIT_DIVIDER_INDEX, + + PLAY_MIDIRECORD_INDEX, + PLAY_STOP_INDEX, + PLAY_STARTPAUSE_INDEX, + PLAY_RESTART_INDEX, + PLAY_DIVIDER_INDEX, + + EDITOCTAVE_INDEX, + SPINOCTAVE_INDEX, + OCTAVE_DIVIDER_INDEX, + + TEMPOTEXT_INDEX, + EDITTEMPO_INDEX, + SPINTEMPO_INDEX, + TEMPO_DIVIDER_INDEX, + + SPEEDTEXT_INDEX, + EDITSPEED_INDEX, + SPINSPEED_INDEX, + SPEED_DIVIDER_INDEX, + + RPBTEXT_INDEX, + EDITRPB_INDEX, + SPINRPB_INDEX, + RPB_DIVIDER_INDEX, + + GLOBALVOLTEXT_INDEX, + EDITGLOBALVOL_INDEX, + SPINGLOBALVOL_INDEX, + GLOBALVOL_DIVIDER_INDEX, + + MISC_OPTIONS_INDEX, + MISC_PANIC_INDEX, + MISC_UPDATE_INDEX, + MISC_DIVIDER_INDEX, + + VUMETER_INDEX, + + NUM_TOOLBAR_INDEX }; -#define TOOLBAR_IMAGE_PAUSE 8 -#define TOOLBAR_IMAGE_PLAY 13 +enum +{ + TOOLBAR_IMAGE_PAUSE = 8, + TOOLBAR_IMAGE_PLAY = 13, +}; #define SCALEPIXELS(x) (HighDPISupport::ScalePixels(x, m_hWnd)) #define SPINNER_WIDTH SCALEPIXELS(16) @@ -239,6 +268,8 @@ ID_SEPARATOR, // VU Meter }; +static_assert(std::size(MainButtons) == NUM_TOOLBAR_INDEX); + enum { MAX_MIDI_DEVICES = 256 }; @@ -431,31 +462,50 @@ { const FlagSet<MainToolBarItem> visibleItems = TrackerSettings::Instance().mainToolBarVisibleItems.Get(); + SetButtonVisibility(FILE_NEW_INDEX, visibleItems[MainToolBarItem::IconsFile]); + SetButtonVisibility(FILE_OPEN_INDEX, visibleItems[MainToolBarItem::IconsFile]); + SetButtonVisibility(FILE_SAVE_INDEX, visibleItems[MainToolBarItem::IconsFile]); + SetButtonVisibility(FILE_DIVIDER_INDEX, visibleItems[MainToolBarItem::IconsFile]); + + SetButtonVisibility(EDIT_CUT_INDEX, visibleItems[MainToolBarItem::IconsEdit]); + SetButtonVisibility(EDIT_COPY_INDEX, visibleItems[MainToolBarItem::IconsEdit]); + SetButtonVisibility(EDIT_PASTE_INDEX, visibleItems[MainToolBarItem::IconsEdit]); + SetButtonVisibility(EDIT_DIVIDER_INDEX, visibleItems[MainToolBarItem::IconsEdit]); + + SetButtonVisibility(PLAY_MIDIRECORD_INDEX, visibleItems[MainToolBarItem::IconsPlayback]); + SetButtonVisibility(PLAY_STOP_INDEX, visibleItems[MainToolBarItem::IconsPlayback]); + SetButtonVisibility(PLAY_STARTPAUSE_INDEX, visibleItems[MainToolBarItem::IconsPlayback]); + SetButtonVisibility(PLAY_RESTART_INDEX, visibleItems[MainToolBarItem::IconsPlayback]); + SetButtonVisibility(PLAY_DIVIDER_INDEX, visibleItems[MainToolBarItem::IconsPlayback]); + + SetButtonVisibility(MISC_OPTIONS_INDEX, visibleItems[MainToolBarItem::IconsMisc]); + SetButtonVisibility(MISC_PANIC_INDEX, visibleItems[MainToolBarItem::IconsMisc]); + SetButtonVisibility(MISC_DIVIDER_INDEX, visibleItems.test_all(MainToolBarItem::IconsMisc | MainToolBarItem::VUMeter)); + UpdateControl(visibleItems[MainToolBarItem::Octave], m_EditOctave, EDITOCTAVE_INDEX, IDC_EDIT_BASEOCTAVE); UpdateControl(visibleItems[MainToolBarItem::Octave], m_SpinOctave, SPINOCTAVE_INDEX, IDC_SPIN_BASEOCTAVE); - SetButtonVisibility(DIVOCTAVE_INDEX, m_bVertical && visibleItems[MainToolBarItem::Octave]); + SetButtonVisibility(OCTAVE_DIVIDER_INDEX, m_bVertical && visibleItems[MainToolBarItem::Octave]); UpdateControl(visibleItems[MainToolBarItem::Tempo], m_StaticTempo, TEMPOTEXT_INDEX, IDC_TEXT_CURRENTTEMPO); UpdateControl(visibleItems[MainToolBarItem::Tempo], m_EditTempo, EDITTEMPO_INDEX, IDC_EDIT_CURRENTTEMPO); UpdateControl(visibleItems[MainToolBarItem::Tempo], m_SpinTempo, SPINTEMPO_INDEX, IDC_SPIN_CURRENTTEMPO); - SetButtonVisibility(DIVTEMPO_INDEX, m_bVertical && visibleItems[MainToolBarItem::Tempo]); + SetButtonVisibility(TEMPO_DIVIDER_INDEX, m_bVertical && visibleItems[MainToolBarItem::Tempo]); UpdateControl(visibleItems[MainToolBarItem::Speed], m_StaticSpeed, SPEEDTEXT_INDEX, IDC_TEXT_CURRENTSPEED); UpdateControl(visibleItems[MainToolBarItem::Speed], m_EditSpeed, EDITSPEED_INDEX, IDC_EDIT_CURRENTSPEED); UpdateControl(visibleItems[MainToolBarItem::Speed], m_SpinSpeed, SPINSPEED_INDEX, IDC_SPIN_CURRENTSPEED); - SetButtonVisibility(DIVSPEED_INDEX, m_bVertical && visibleItems[MainToolBarItem::Speed]); + SetButtonVisibility(SPEED_DIVIDER_INDEX, m_bVertical && visibleItems[MainToolBarItem::Speed]); UpdateControl(visibleItems[MainToolBarItem::RowsPerBeat], m_StaticRowsPerBeat, RPBTEXT_INDEX, IDC_TEXT_RPB); UpdateControl(visibleItems[MainToolBarItem::RowsPerBeat], m_EditRowsPerBeat, EDITRPB_INDEX, IDC_EDIT_RPB); UpdateControl(visibleItems[MainToolBarItem::RowsPerBeat], m_SpinRowsPerBeat, SPINRPB_INDEX, IDC_SPIN_RPB); - SetButtonVisibility(DIVRPB_INDEX, m_bVertical && visibleItems[MainToolBarItem::RowsPerBeat]); + SetButtonVisibility(RPB_DIVIDER_INDEX, m_bVertical && visibleItems[MainToolBarItem::RowsPerBeat]); UpdateControl(visibleItems[MainToolBarItem::GlobalVolume], m_StaticGlobalVolume, GLOBALVOLTEXT_INDEX, IDC_TEXT_GLOBALVOL); UpdateControl(visibleItems[MainToolBarItem::GlobalVolume], m_EditGlobalVolume, EDITGLOBALVOL_INDEX, IDC_EDIT_GLOBALVOL); UpdateControl(visibleItems[MainToolBarItem::GlobalVolume], m_SpinGlobalVolume, SPINGLOBALVOL_INDEX, IDC_SPIN_GLOBALVOL); - SetButtonVisibility(DIVGLOBALVOL_INDEX, visibleItems.test_any_except(MainToolBarItem::VUMeter)); + SetButtonVisibility(GLOBALVOL_DIVIDER_INDEX, visibleItems.test_any_except(MainToolBarItem::VUMeter)); - SetButtonVisibility(DIVVUMETER_INDEX, visibleItems[MainToolBarItem::VUMeter]); m_VuMeter.SetOrientation(!m_bVertical); if(m_bVertical) m_VuMeter.SetWindowPos(nullptr, 0, 0, VUMETER_HEIGHT, VUMETER_HEIGHT, SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE); @@ -469,6 +519,9 @@ { FlagSet<MainToolBarItem> visibleItems = TrackerSettings::Instance().mainToolBarVisibleItems.Get(); visibleItems.flip(item); + // At least one icon group must be visible, otherwise the toolbar collapses + if(!visibleItems[MainToolBarItem::AllIcons]) + visibleItems.flip(item); TrackerSettings::Instance().mainToolBarVisibleItems = visibleItems.value().as_enum(); RefreshToolbar(); return visibleItems[item]; @@ -551,7 +604,7 @@ { // Update play/pause button if(m_currentTempo == TEMPO(0, 0)) - SetButtonInfo(PLAYCMD_INDEX, ID_PLAYER_PAUSE, TBBS_BUTTON, TOOLBAR_IMAGE_PAUSE); + SetButtonInfo(PLAY_STARTPAUSE_INDEX, ID_PLAYER_PAUSE, TBBS_BUTTON, TOOLBAR_IMAGE_PAUSE); // Update Speed int nSpeed = pSndFile->m_PlayState.m_nMusicSpeed; if(nSpeed != m_currentSpeed && focus != &m_EditSpeed && visibleItems[MainToolBarItem::Speed]) @@ -595,7 +648,7 @@ if(m_currentTempo > TEMPO(0, 0)) { EnableEdit(m_EditTempo, m_SpinTempo, false); - SetButtonInfo(PLAYCMD_INDEX, ID_PLAYER_PLAY, TBBS_BUTTON, TOOLBAR_IMAGE_PLAY); + SetButtonInfo(PLAY_STARTPAUSE_INDEX, ID_PLAYER_PLAY, TBBS_BUTTON, TOOLBAR_IMAGE_PLAY); } if(m_currentSpeed != -1) EnableEdit(m_EditSpeed, m_SpinSpeed, false); Modified: trunk/OpenMPT/mptrack/Mainbar.h ============================================================================== --- trunk/OpenMPT/mptrack/Mainbar.h Sun Jun 15 22:27:11 2025 (r23524) +++ trunk/OpenMPT/mptrack/Mainbar.h Sun Jun 15 22:32:01 2025 (r23525) @@ -19,7 +19,7 @@ OPENMPT_NAMESPACE_BEGIN -enum class MainToolBarItem : uint8; +enum class MainToolBarItem : uint32; class CMainToolBar; class CStereoVU: public CStatic Modified: trunk/OpenMPT/mptrack/Mainfrm.h ============================================================================== --- trunk/OpenMPT/mptrack/Mainfrm.h Sun Jun 15 22:27:11 2025 (r23524) +++ trunk/OpenMPT/mptrack/Mainfrm.h Sun Jun 15 22:32:01 2025 (r23525) @@ -38,7 +38,7 @@ struct UpdateHint; struct MODPLUGDIB; enum class MidiSetup: int32; -enum class MainToolBarItem : uint8; +enum class MainToolBarItem : uint32; enum SoundDeviceStopMode : int; namespace SoundDevice { class Base; @@ -465,6 +465,10 @@ afx_msg void OnToggleMainBarShowRowsPerBeat(); afx_msg void OnToggleMainBarShowGlobalVolume(); afx_msg void OnToggleMainBarShowVUMeter(); + afx_msg void OnToggleMainBarShowFileIcons(); + afx_msg void OnToggleMainBarShowEditIcons(); + afx_msg void OnToggleMainBarShowPlayIcons(); + afx_msg void OnToggleMainBarShowMiscIcons(); afx_msg void OnToggleMainBarItem(MainToolBarItem item, UINT menuID); afx_msg void OnToggleTreeViewOnLeft(); Modified: trunk/OpenMPT/mptrack/TrackerSettings.cpp ============================================================================== --- trunk/OpenMPT/mptrack/TrackerSettings.cpp Sun Jun 15 22:27:11 2025 (r23524) +++ trunk/OpenMPT/mptrack/TrackerSettings.cpp Sun Jun 15 22:32:01 2025 (r23525) @@ -913,6 +913,15 @@ // Migrate Tuning data MigrateTunings(storedVersion); + // At least one icon group must be visible, otherwise the toolbar collapses. + // If all icon groups are gone, just re-activate them all. This also serves as an upgrade path from older versions where icons were always visible. + FlagSet<MainToolBarItem> toolbarItems = mainToolBarVisibleItems.Get(); + if(!toolbarItems[MainToolBarItem::AllIcons]) + { + toolbarItems.set(MainToolBarItem::AllIcons); + mainToolBarVisibleItems = toolbarItems.value().as_enum(); + } + // Sanitize MIDI import data if(midiImportPatternLen < ModSpecs::mptm.patternRowsMin || midiImportPatternLen > ModSpecs::mptm.patternRowsMax) midiImportPatternLen = 128; Modified: trunk/OpenMPT/mptrack/TrackerSettings.h ============================================================================== --- trunk/OpenMPT/mptrack/TrackerSettings.h Sun Jun 15 22:27:11 2025 (r23524) +++ trunk/OpenMPT/mptrack/TrackerSettings.h Sun Jun 15 22:32:01 2025 (r23525) @@ -406,7 +406,7 @@ template<> inline SettingValue ToSettingValue(const NewFileAction &val) { return SettingValue(int32(val)); } template<> inline NewFileAction FromSettingValue(const SettingValue &val) { return NewFileAction(val.as<int32>()); } -enum class MainToolBarItem : uint8 +enum class MainToolBarItem : uint32 { Octave = 0x01, Tempo = 0x02, @@ -414,8 +414,13 @@ RowsPerBeat = 0x08, GlobalVolume = 0x10, VUMeter = 0x20, + IconsFile = 0x40, + IconsEdit = 0x80, + IconsPlayback = 0x100, + IconsMisc = 0x200, - Default = Octave | Tempo | Speed | RowsPerBeat | GlobalVolume | VUMeter + AllIcons = IconsFile | IconsEdit | IconsPlayback | IconsMisc, + Default = Octave | Tempo | Speed | RowsPerBeat | GlobalVolume | VUMeter | AllIcons }; DECLARE_FLAGSET(MainToolBarItem) Modified: trunk/OpenMPT/mptrack/resource.h ============================================================================== --- trunk/OpenMPT/mptrack/resource.h Sun Jun 15 22:27:11 2025 (r23524) +++ trunk/OpenMPT/mptrack/resource.h Sun Jun 15 22:32:01 2025 (r23525) @@ -1185,10 +1185,14 @@ #define ID_MAINBAR_SHOW_ROWSPERBEAT 36040 #define ID_MAINBAR_SHOW_GLOBALVOLUME 36041 #define ID_MAINBAR_SHOW_VUMETER 36042 -#define ID_TREEVIEW_ON_LEFT 36043 -#define ID_KEYPRESET_MPT 36044 -#define ID_KEYPRESET_IT 36045 -#define ID_KEYPRESET_FT2 36046 +#define ID_MAINBAR_SHOW_FILE_ICONS 36043 +#define ID_MAINBAR_SHOW_EDIT_ICONS 36044 +#define ID_MAINBAR_SHOW_PLAY_ICONS 36045 +#define ID_MAINBAR_SHOW_MISC_ICONS 36046 +#define ID_TREEVIEW_ON_LEFT 36047 +#define ID_KEYPRESET_MPT 36048 +#define ID_KEYPRESET_IT 36049 +#define ID_KEYPRESET_FT2 36050 #define ID_SELECTINST 36100 // From here: Command range [ID_SELECTINST, ID_SELECTINST + MAX_INSTRUMENTS] #define ID_PLUG_RECORDAUTOMATION 37003 |
From: <sv...@op...> - 2025-06-15 20:27:26
|
Author: sagamusix Date: Sun Jun 15 22:27:11 2025 New Revision: 23524 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=23524 Log: [Ref] CModTreeBar: Use FlagSet. Modified: trunk/OpenMPT/mptrack/Mainbar.cpp trunk/OpenMPT/mptrack/Mainbar.h Modified: trunk/OpenMPT/mptrack/Mainbar.cpp ============================================================================== --- trunk/OpenMPT/mptrack/Mainbar.cpp Sun Jun 15 21:09:50 2025 (r23523) +++ trunk/OpenMPT/mptrack/Mainbar.cpp Sun Jun 15 22:27:11 2025 (r23524) @@ -191,12 +191,11 @@ #define TOOLBAR_IMAGE_PLAY 13 #define SCALEPIXELS(x) (HighDPISupport::ScalePixels(x, m_hWnd)) -#define TEXTFIELD_HEIGHT SCALEPIXELS(20) #define SPINNER_WIDTH SCALEPIXELS(16) #define SPINNER_HEIGHT SCALEPIXELS(20) #define VUMETER_WIDTH SCALEPIXELS(255) #define VUMETER_HEIGHT SCALEPIXELS(19) -#define TREEVIEW_PADDING SCALEPIXELS(3) + static UINT MainButtons[] = { @@ -952,8 +951,8 @@ m_pModTreeData->SubclassDlgItem(IDC_TREEDATA, this); m_pModTree = new CModTree(m_pModTreeData); m_pModTree->SubclassDlgItem(IDC_TREEVIEW, this); - m_dwStatus = 0; - m_sizeDefault.cx = HighDPISupport::ScalePixels(TrackerSettings::Instance().glTreeWindowWidth, m_hWnd) + TREEVIEW_PADDING; + m_status.reset(); + m_sizeDefault.cx = HighDPISupport::ScalePixels(TrackerSettings::Instance().glTreeWindowWidth, m_hWnd) + Padding(); m_sizeDefault.cy = 32767; return l; } @@ -1045,6 +1044,12 @@ } +int CModTreeBar::Padding() const +{ + return HighDPISupport::ScalePixels(3, m_hWnd); +} + + void CModTreeBar::RecalcLayout() { CRect rect; @@ -1054,7 +1059,7 @@ int cytree, cydata, cyavail; GetClientRect(&rect); - const int padding = TREEVIEW_PADDING; + const int padding = Padding(); cyavail = rect.Height() - padding; if(cyavail < 0) cyavail = 0; cytree = (cyavail * m_nTreeSplitRatio) >> 8; @@ -1088,7 +1093,7 @@ CSize sz; m_sizeDefault.cx = width; m_sizeDefault.cy = 32767; - const int padding = TREEVIEW_PADDING; + const int padding = Padding(); sz.cx = width + padding; if(sz.cx < padding + 1) sz.cx = padding + 1; @@ -1102,13 +1107,13 @@ CRect rect; GetClientRect(&rect); - if((m_dwStatus & (MTB_CAPTURE|MTB_DRAGGING)) && (::GetCapture() != m_hWnd)) + if(m_status[MTB_CAPTURE | MTB_DRAGGING] && (::GetCapture() != m_hWnd)) { CancelTracking(); } - if(m_dwStatus & MTB_DRAGGING) + if(m_status[MTB_DRAGGING]) { - if(m_dwStatus & MTB_VERTICAL) + if(m_status[MTB_VERTICAL]) { if(m_pModTree) { @@ -1118,36 +1123,36 @@ } pt.y -= ptDragging.y; pt.y = std::clamp(static_cast<int>(pt.y), 0, rect.Height()); - if((!(m_dwStatus & MTB_TRACKER)) || (pt.y != static_cast<int>(m_nTrackPos))) + if(!m_status[MTB_TRACKER] || (pt.y != static_cast<int>(m_nTrackPos))) { - if(m_dwStatus & MTB_TRACKER) + if(m_status[MTB_TRACKER]) OnInvertTracker(m_nTrackPos); m_nTrackPos = pt.y; OnInvertTracker(m_nTrackPos); - m_dwStatus |= MTB_TRACKER; + m_status.set(MTB_TRACKER); } } else { pt.x -= ptDragging.x; if(BarOnLeft()) - pt.x += (m_cxOriginal - TREEVIEW_PADDING); + pt.x += (m_cxOriginal - Padding()); else pt.x = m_cxOriginal - pt.x; pt.x = std::max(pt.x, LONG(0)); - if((!(m_dwStatus & MTB_TRACKER)) || (pt.x != static_cast<int>(m_nTrackPos))) + if(!m_status[MTB_TRACKER] || (pt.x != static_cast<int>(m_nTrackPos))) { - if(m_dwStatus & MTB_TRACKER) + if(m_status[MTB_TRACKER]) OnInvertTracker(m_nTrackPos); m_nTrackPos = pt.x; OnInvertTracker(m_nTrackPos); - m_dwStatus |= MTB_TRACKER; + m_status.set(MTB_TRACKER); } } } else { UINT nCursor = 0; - const int padding = TREEVIEW_PADDING; + const int padding = Padding(); const int extraPadding = HighDPISupport::ScalePixels(2, m_hWnd); if(BarOnLeft()) { @@ -1176,27 +1181,27 @@ } if(nCursor) { - UINT nDir = (nCursor == AFX_IDC_VSPLITBAR) ? MTB_VERTICAL : 0; - bool load = false; - if(!(m_dwStatus & MTB_CAPTURE)) + const bool wasVertical = m_status[MTB_VERTICAL]; + bool vertical = (nCursor == AFX_IDC_VSPLITBAR); + bool setCursor = false; + if(!m_status[MTB_CAPTURE]) { - m_dwStatus |= MTB_CAPTURE; + m_status.set(MTB_CAPTURE); SetCapture(); - load = true; + setCursor = true; } else { - if(nDir != (m_dwStatus & MTB_VERTICAL)) - load = true; + if(vertical != wasVertical) + setCursor = true; } - m_dwStatus &= ~MTB_VERTICAL; - m_dwStatus |= nDir; - if(load) + m_status.set(MTB_VERTICAL, vertical); + if(setCursor) SetCursor(theApp.LoadCursor(nCursor)); } else { - if(m_dwStatus & MTB_CAPTURE) + if(m_status[MTB_CAPTURE]) { - m_dwStatus &= ~MTB_CAPTURE; + m_status.reset(MTB_CAPTURE); ReleaseCapture(); SetCursor(LoadCursor(NULL, IDC_ARROW)); } @@ -1207,14 +1212,14 @@ void CModTreeBar::DoLButtonDown(CPoint pt) { - if((m_dwStatus & MTB_CAPTURE) && (!(m_dwStatus & MTB_DRAGGING))) + if(m_status[MTB_CAPTURE] && !m_status[MTB_DRAGGING]) { CRect rect; GetWindowRect(&rect); m_cxOriginal = rect.Width(); m_cyOriginal = rect.Height(); ptDragging = pt; - m_dwStatus |= MTB_DRAGGING; + m_status.set(MTB_DRAGGING); DoMouseMove(pt); } } @@ -1222,18 +1227,18 @@ void CModTreeBar::DoLButtonUp() { - if(m_dwStatus & MTB_DRAGGING) + if(m_status[MTB_DRAGGING]) { CRect rect; - m_dwStatus &= ~MTB_DRAGGING; - if(m_dwStatus & MTB_TRACKER) + m_status.reset(MTB_DRAGGING); + if(m_status[MTB_TRACKER]) { OnInvertTracker(m_nTrackPos); - m_dwStatus &= ~MTB_TRACKER; + m_status.reset(MTB_TRACKER); } - const int padding = TREEVIEW_PADDING; - if(m_dwStatus & MTB_VERTICAL) + const int padding = Padding(); + if(m_status[MTB_VERTICAL]) { GetClientRect(&rect); int cyavail = rect.Height() - padding; @@ -1264,15 +1269,15 @@ void CModTreeBar::CancelTracking() { - if(m_dwStatus & MTB_TRACKER) + if(m_status[MTB_TRACKER]) { OnInvertTracker(m_nTrackPos); - m_dwStatus &= ~MTB_TRACKER; + m_status.reset(MTB_TRACKER); } - m_dwStatus &= ~MTB_DRAGGING; - if(m_dwStatus & MTB_CAPTURE) + m_status.reset(MTB_DRAGGING); + if(m_status[MTB_CAPTURE]) { - m_dwStatus &= ~MTB_CAPTURE; + m_status.reset(MTB_CAPTURE); ReleaseCapture(); } } @@ -1287,8 +1292,8 @@ CRect rect; GetClientRect(&rect); - const int padding = TREEVIEW_PADDING + 1; - if(m_dwStatus & MTB_VERTICAL) + const int padding = Padding() + 1; + if(m_status[MTB_VERTICAL]) { rect.top = x; rect.bottom = rect.top + padding; @@ -1358,9 +1363,9 @@ if(lpncsp) { if(BarOnLeft()) - lpncsp->rgrc[0].right -= TREEVIEW_PADDING; + lpncsp->rgrc[0].right -= Padding(); else - lpncsp->rgrc[0].left += TREEVIEW_PADDING; + lpncsp->rgrc[0].left += Padding(); lpncsp->rgrc[0].right = std::max(lpncsp->rgrc[0].left, lpncsp->rgrc[0].right); } } @@ -1373,9 +1378,9 @@ GetWindowRect(&rect); rect.DeflateRect(1, 1); if(BarOnLeft()) - rect.right -= TREEVIEW_PADDING; + rect.right -= Padding(); else - rect.left += TREEVIEW_PADDING; + rect.left += Padding(); if(!rect.PtInRect(point)) return HTBORDER; return CDialogBar::OnNcHitTest(point); @@ -1394,9 +1399,9 @@ rect.left = 0; rect.top = 0; if(BarOnLeft()) - rect.left = rect.right - TREEVIEW_PADDING; + rect.left = rect.right - Padding(); else - rect.right = rect.left + TREEVIEW_PADDING; + rect.right = rect.left + Padding(); if((rect.left < rect.right) && (rect.top < rect.bottom)) { CDC *pDC = GetWindowDC(); Modified: trunk/OpenMPT/mptrack/Mainbar.h ============================================================================== --- trunk/OpenMPT/mptrack/Mainbar.h Sun Jun 15 21:09:50 2025 (r23523) +++ trunk/OpenMPT/mptrack/Mainbar.h Sun Jun 15 22:27:11 2025 (r23524) @@ -165,7 +165,7 @@ class CModTreeBar: public CDialogBar { -protected: +public: enum Status { MTB_VERTICAL = 0x01, @@ -174,7 +174,8 @@ MTB_TRACKER = 0x08, }; - DWORD m_dwStatus = 0; // MTB_XXXX +protected: + FlagSet<Status> m_status; UINT m_nCursorDrag = 0; CPoint ptDragging; UINT m_cxOriginal = 0, m_cyOriginal = 0, m_nTrackPos = 0; @@ -223,6 +224,8 @@ void CloseTreeFilter(); void CancelTimer(); + int Padding() const; + protected: //{{AFX_MSG(CModTreeBar) afx_msg void OnNcPaint(); @@ -245,5 +248,7 @@ DECLARE_MESSAGE_MAP() }; +DECLARE_FLAGSET(CModTreeBar::Status) + OPENMPT_NAMESPACE_END |
From: <sv...@op...> - 2025-06-15 19:10:02
|
Author: manx Date: Sun Jun 15 21:09:50 2025 New Revision: 23523 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=23523 Log: [Ref] Update Check: When building staistics JSON, do not rely on nlohmann-json implicitly converting std::string into JSON. Always force through mpt::ustring. Modified: trunk/OpenMPT/mptrack/UpdateCheck.cpp Modified: trunk/OpenMPT/mptrack/UpdateCheck.cpp ============================================================================== --- trunk/OpenMPT/mptrack/UpdateCheck.cpp Sun Jun 15 21:08:43 2025 (r23522) +++ trunk/OpenMPT/mptrack/UpdateCheck.cpp Sun Jun 15 21:09:50 2025 (r23523) @@ -622,7 +622,7 @@ j["System"]["Windows"]["Build"] = mpt::osinfo::windows::Version::Current().GetBuild(); j["System"]["Windows"]["Architecture"] = mpt::OS::Windows::Name(mpt::OS::Windows::GetHostArchitecture()); j["System"]["Windows"]["IsWine"] = mpt::OS::Windows::IsWine(); - j["System"]["Windows"]["TypeRaw"] = MPT_AFORMAT("0x{}")(mpt::afmt::HEX0<8>(mpt::osinfo::windows::Version::Current().GetTypeId())); + j["System"]["Windows"]["TypeRaw"] = MPT_UFORMAT("0x{}")(mpt::ufmt::HEX0<8>(mpt::osinfo::windows::Version::Current().GetTypeId())); std::vector<mpt::OS::Windows::Architecture> architectures = mpt::OS::Windows::GetSupportedProcessArchitectures(mpt::OS::Windows::GetHostArchitecture()); for(const auto & arch : architectures) { @@ -633,14 +633,14 @@ if(mpt::OS::Windows::IsWine()) { mpt::OS::Wine::VersionContext v; - j["System"]["Windows"]["Wine"]["Version"]["Raw"] = v.RawVersion(); + j["System"]["Windows"]["Wine"]["Version"]["Raw"] = mpt::ToUnicode(mpt::Charset::UTF8, v.RawVersion()); if(v.Version().IsValid()) { j["System"]["Windows"]["Wine"]["Version"]["Major"] = v.Version().GetMajor(); j["System"]["Windows"]["Wine"]["Version"]["Minor"] = v.Version().GetMinor(); j["System"]["Windows"]["Wine"]["Version"]["Update"] = v.Version().GetUpdate(); } - j["System"]["Windows"]["Wine"]["HostSysName"] = v.RawHostSysName(); + j["System"]["Windows"]["Wine"]["HostSysName"] = mpt::ToUnicode(mpt::Charset::UTF8, v.RawHostSysName()); } const SoundDevice::Identifier deviceIdentifier = TrackerSettings::Instance().GetSoundDeviceIdentifier(); const SoundDevice::Info deviceInfo = theApp.GetSoundDevicesManager()->FindDeviceInfo(deviceIdentifier); @@ -658,9 +658,9 @@ #ifdef MPT_ENABLE_ARCH_INTRINSICS #if MPT_ARCH_X86 || MPT_ARCH_AMD64 const mpt::arch::current::cpu_info CPUInfo = mpt::arch::get_cpu_info(); - j["System"]["Processor"]["Vendor"] = CPUInfo.get_vendor_string(); - j["System"]["Processor"]["Brand"] = CPUInfo.get_brand_string(); - j["System"]["Processor"]["CpuidRaw"] = mpt::afmt::hex0<8>(CPUInfo.get_cpuid()); + j["System"]["Processor"]["Vendor"] = mpt::ToUnicode(mpt::Charset::ASCII, CPUInfo.get_vendor_string()); + j["System"]["Processor"]["Brand"] = mpt::ToUnicode(mpt::Charset::ASCII, CPUInfo.get_brand_string()); + j["System"]["Processor"]["CpuidRaw"] = mpt::ufmt::hex0<8>(CPUInfo.get_cpuid()); j["System"]["Processor"]["Id"]["Family"] = CPUInfo.get_family(); j["System"]["Processor"]["Id"]["Model"] = CPUInfo.get_model(); j["System"]["Processor"]["Id"]["Stepping"] = CPUInfo.get_stepping(); |
From: <sv...@op...> - 2025-06-15 19:08:51
|
Author: manx Date: Sun Jun 15 21:08:43 2025 New Revision: 23522 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=23522 Log: [Fix] WriteMemoryDump: Fix CloseHandle(). Modified: trunk/OpenMPT/misc/WriteMemoryDump.h Modified: trunk/OpenMPT/misc/WriteMemoryDump.h ============================================================================== --- trunk/OpenMPT/misc/WriteMemoryDump.h Sat Jun 14 17:02:15 2025 (r23521) +++ trunk/OpenMPT/misc/WriteMemoryDump.h Sun Jun 15 21:08:43 2025 (r23522) @@ -62,12 +62,10 @@ { result = (pDump(GetCurrentProcess(), GetCurrentProcessId(), hFile, flags, NULL, NULL, NULL) == TRUE); } + ::CloseHandle(hFile); } - ::CloseHandle(hFile); - hFile = NULL; } ::FreeLibrary(hDll); - hDll = NULL; } return result; } |
From: <sv...@op...> - 2025-06-14 16:02:21
|
Author: sagamusix Date: Sat Jun 14 14:57:11 2025 New Revision: 23492 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=23492 Log: [Doc] libopenmpt: Update changelog. Modified: branches/OpenMPT-1.31/doc/libopenmpt/changelog.md Modified: branches/OpenMPT-1.31/doc/libopenmpt/changelog.md ============================================================================== --- branches/OpenMPT-1.31/doc/libopenmpt/changelog.md Sat Jun 14 14:44:50 2025 (r23491) +++ branches/OpenMPT-1.31/doc/libopenmpt/changelog.md Sat Jun 14 14:57:11 2025 (r23492) @@ -16,6 +16,8 @@ the file extension only in the subformat (i.e. MP3 with libsndfile 1.1.0 or later). + * MED: Command FFF no longer stops a note if it was triggered on the same row. + * mpg123: Update to v1.33.0 (2025-06-07). * miniz: Update to v3.0.2 (2023-01-15). * pugixml: Update to v1.15 (2025-01-10). |
From: <sv...@op...> - 2025-06-14 15:42:31
|
Author: sagamusix Date: Sat Jun 14 14:57:18 2025 New Revision: 23493 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=23493 Log: [Doc] libopenmpt: Update changelog. Modified: branches/OpenMPT-1.30/libopenmpt/dox/changelog.md Modified: branches/OpenMPT-1.30/libopenmpt/dox/changelog.md ============================================================================== --- branches/OpenMPT-1.30/libopenmpt/dox/changelog.md Sat Jun 14 14:57:11 2025 (r23492) +++ branches/OpenMPT-1.30/libopenmpt/dox/changelog.md Sat Jun 14 14:57:18 2025 (r23493) @@ -16,6 +16,8 @@ the file extension only in the subformat (i.e. MP3 with libsndfile 1.1.0 or later). + * MED: Command FFF no longer stops a note if it was triggered on the same row. + * mpg123: Update to v1.33.0 (2025-06-07). * miniz: Update to v3.0.2 (2023-01-15). * pugixml: Update to v1.15 (2025-01-10). |
From: <sv...@op...> - 2025-06-14 15:42:31
|
Author: manx Date: Sat Jun 14 15:13:15 2025 New Revision: 23513 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=23513 Log: [Mod] OpenMPT: Version is now 1.29.15.47 Modified: branches/OpenMPT-1.29/common/versionNumber.h Modified: branches/OpenMPT-1.29/common/versionNumber.h ============================================================================== --- branches/OpenMPT-1.29/common/versionNumber.h Sat Jun 14 15:13:09 2025 (r23512) +++ branches/OpenMPT-1.29/common/versionNumber.h Sat Jun 14 15:13:15 2025 (r23513) @@ -18,6 +18,6 @@ #define VER_MAJORMAJOR 1 #define VER_MAJOR 29 #define VER_MINOR 15 -#define VER_MINORMINOR 46 +#define VER_MINORMINOR 47 OPENMPT_NAMESPACE_END |
From: <sv...@op...> - 2025-06-14 15:42:27
|
Author: manx Date: Sat Jun 14 15:13:44 2025 New Revision: 23518 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=23518 Log: [Mod] OpenMPT: Version is now 1.28.10.77 Modified: branches/OpenMPT-1.28/common/versionNumber.h Modified: branches/OpenMPT-1.28/common/versionNumber.h ============================================================================== --- branches/OpenMPT-1.28/common/versionNumber.h Sat Jun 14 15:13:43 2025 (r23517) +++ branches/OpenMPT-1.28/common/versionNumber.h Sat Jun 14 15:13:44 2025 (r23518) @@ -21,7 +21,7 @@ #define VER_MAJORMAJOR 1 #define VER_MAJOR 28 #define VER_MINOR 10 -#define VER_MINORMINOR 76 +#define VER_MINORMINOR 77 //Numerical value of the version. #define MPT_VERSION_CURRENT MAKE_VERSION_NUMERIC(VER_MAJORMAJOR,VER_MAJOR,VER_MINOR,VER_MINORMINOR) |
From: <sv...@op...> - 2025-06-14 15:42:26
|
Author: manx Date: Sat Jun 14 15:13:01 2025 New Revision: 23511 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=23511 Log: tag libopenmpt-0.5.37 Added: tags/libopenmpt-0.5.37/ - copied from r23510, branches/OpenMPT-1.29/ |
From: <sv...@op...> - 2025-06-14 15:42:26
|
Author: manx Date: Sat Jun 14 15:14:21 2025 New Revision: 23519 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=23519 Log: [Mod] OpenMPT: Version is now 1.32.01.05 Modified: branches/OpenMPT-1.32/common/versionNumber.h Modified: branches/OpenMPT-1.32/common/versionNumber.h ============================================================================== --- branches/OpenMPT-1.32/common/versionNumber.h Sat Jun 14 15:13:44 2025 (r23518) +++ branches/OpenMPT-1.32/common/versionNumber.h Sat Jun 14 15:14:21 2025 (r23519) @@ -16,4 +16,4 @@ #define VER_MAJORMAJOR 1 #define VER_MAJOR 32 #define VER_MINOR 01 -#define VER_MINORMINOR 04 +#define VER_MINORMINOR 05 |
From: <sv...@op...> - 2025-06-14 15:42:22
|
Author: manx Date: Sat Jun 14 15:12:52 2025 New Revision: 23510 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=23510 Log: [Mod] libopenmpt: Prepare for release. Modified: branches/OpenMPT-1.29/libopenmpt/dox/changelog.md branches/OpenMPT-1.29/libopenmpt/libopenmpt_version.h branches/OpenMPT-1.29/libopenmpt/libopenmpt_version.mk Modified: branches/OpenMPT-1.29/libopenmpt/dox/changelog.md ============================================================================== --- branches/OpenMPT-1.29/libopenmpt/dox/changelog.md Sat Jun 14 15:12:46 2025 (r23509) +++ branches/OpenMPT-1.29/libopenmpt/dox/changelog.md Sat Jun 14 15:12:52 2025 (r23510) @@ -5,7 +5,7 @@ For fully detailed change log, please see the source repository directly. This is just a high-level summary. -### libopenmpt 0.5.37-pre +### libopenmpt 0.5.37 (2025-06-14) * [**Bug**] `openmpt::string::get("source_has_mixed_revisions")` and `openmpt_get_string("source_has_mixed_revisions")` always returned an empty Modified: branches/OpenMPT-1.29/libopenmpt/libopenmpt_version.h ============================================================================== --- branches/OpenMPT-1.29/libopenmpt/libopenmpt_version.h Sat Jun 14 15:12:46 2025 (r23509) +++ branches/OpenMPT-1.29/libopenmpt/libopenmpt_version.h Sat Jun 14 15:12:52 2025 (r23510) @@ -21,9 +21,9 @@ /*! \brief libopenmpt patch version number */ #define OPENMPT_API_VERSION_PATCH 37 /*! \brief libopenmpt pre-release tag */ -#define OPENMPT_API_VERSION_PREREL "-pre.0" +#define OPENMPT_API_VERSION_PREREL "" /*! \brief libopenmpt pre-release flag */ -#define OPENMPT_API_VERSION_IS_PREREL 1 +#define OPENMPT_API_VERSION_IS_PREREL 0 /*! \brief libopenmpt version number as a single integer value * \since 0.3 Modified: branches/OpenMPT-1.29/libopenmpt/libopenmpt_version.mk ============================================================================== --- branches/OpenMPT-1.29/libopenmpt/libopenmpt_version.mk Sat Jun 14 15:12:46 2025 (r23509) +++ branches/OpenMPT-1.29/libopenmpt/libopenmpt_version.mk Sat Jun 14 15:12:52 2025 (r23510) @@ -1,7 +1,7 @@ LIBOPENMPT_VERSION_MAJOR=0 LIBOPENMPT_VERSION_MINOR=5 LIBOPENMPT_VERSION_PATCH=37 -LIBOPENMPT_VERSION_PREREL=-pre.0 +LIBOPENMPT_VERSION_PREREL= LIBOPENMPT_LTVER_CURRENT=2 LIBOPENMPT_LTVER_REVISION=37 |
From: <sv...@op...> - 2025-06-14 15:42:21
|
Author: manx Date: Sat Jun 14 15:13:39 2025 New Revision: 23515 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=23515 Log: [Mod] libopenmpt: Prepare for release. Modified: branches/OpenMPT-1.28/libopenmpt/dox/changelog.md branches/OpenMPT-1.28/libopenmpt/libopenmpt_version.h branches/OpenMPT-1.28/libopenmpt/libopenmpt_version.mk Modified: branches/OpenMPT-1.28/libopenmpt/dox/changelog.md ============================================================================== --- branches/OpenMPT-1.28/libopenmpt/dox/changelog.md Sat Jun 14 15:13:37 2025 (r23514) +++ branches/OpenMPT-1.28/libopenmpt/dox/changelog.md Sat Jun 14 15:13:39 2025 (r23515) @@ -5,7 +5,7 @@ For fully detailed change log, please see the source repository directly. This is just a high-level summary. -### libopenmpt 0.4.49-pre +### libopenmpt 0.4.49 (2025-06-14) * [**Bug**] `openmpt::string::get("source_has_mixed_revisions")` and `openmpt_get_string("source_has_mixed_revisions")` always returned an empty Modified: branches/OpenMPT-1.28/libopenmpt/libopenmpt_version.h ============================================================================== --- branches/OpenMPT-1.28/libopenmpt/libopenmpt_version.h Sat Jun 14 15:13:37 2025 (r23514) +++ branches/OpenMPT-1.28/libopenmpt/libopenmpt_version.h Sat Jun 14 15:13:39 2025 (r23515) @@ -21,9 +21,9 @@ /*! \brief libopenmpt patch version number */ #define OPENMPT_API_VERSION_PATCH 49 /*! \brief libopenmpt pre-release tag */ -#define OPENMPT_API_VERSION_PREREL "-pre.1" +#define OPENMPT_API_VERSION_PREREL "" /*! \brief libopenmpt pre-release flag */ -#define OPENMPT_API_VERSION_IS_PREREL 1 +#define OPENMPT_API_VERSION_IS_PREREL 0 /*! \brief libopenmpt version number as a single integer value * \since 0.3 Modified: branches/OpenMPT-1.28/libopenmpt/libopenmpt_version.mk ============================================================================== --- branches/OpenMPT-1.28/libopenmpt/libopenmpt_version.mk Sat Jun 14 15:13:37 2025 (r23514) +++ branches/OpenMPT-1.28/libopenmpt/libopenmpt_version.mk Sat Jun 14 15:13:39 2025 (r23515) @@ -1,7 +1,7 @@ LIBOPENMPT_VERSION_MAJOR=0 LIBOPENMPT_VERSION_MINOR=4 LIBOPENMPT_VERSION_PATCH=49 -LIBOPENMPT_VERSION_PREREL=-pre.1 +LIBOPENMPT_VERSION_PREREL= LIBOPENMPT_LTVER_CURRENT=1 LIBOPENMPT_LTVER_REVISION=49 |
From: <sv...@op...> - 2025-06-14 15:42:21
|
Author: manx Date: Sat Jun 14 15:13:41 2025 New Revision: 23516 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=23516 Log: tag libopenmpt-0.4.49 Added: tags/libopenmpt-0.4.49/ - copied from r23515, branches/OpenMPT-1.28/ |
From: <sv...@op...> - 2025-06-14 15:42:20
|
Author: manx Date: Sat Jun 14 15:12:46 2025 New Revision: 23509 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=23509 Log: [Mod] OpenMPT: Version is now 1.29.15.46 Modified: branches/OpenMPT-1.29/common/versionNumber.h Modified: branches/OpenMPT-1.29/common/versionNumber.h ============================================================================== --- branches/OpenMPT-1.29/common/versionNumber.h Sat Jun 14 15:10:41 2025 (r23508) +++ branches/OpenMPT-1.29/common/versionNumber.h Sat Jun 14 15:12:46 2025 (r23509) @@ -18,6 +18,6 @@ #define VER_MAJORMAJOR 1 #define VER_MAJOR 29 #define VER_MINOR 15 -#define VER_MINORMINOR 45 +#define VER_MINORMINOR 46 OPENMPT_NAMESPACE_END |
From: <sv...@op...> - 2025-06-14 15:42:20
|
Author: manx Date: Sat Jun 14 15:13:43 2025 New Revision: 23517 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=23517 Log: [Mod] libopenmpt: Bump patch version. Modified: branches/OpenMPT-1.28/libopenmpt/dox/changelog.md branches/OpenMPT-1.28/libopenmpt/libopenmpt_version.h branches/OpenMPT-1.28/libopenmpt/libopenmpt_version.mk Modified: branches/OpenMPT-1.28/libopenmpt/dox/changelog.md ============================================================================== --- branches/OpenMPT-1.28/libopenmpt/dox/changelog.md Sat Jun 14 15:13:41 2025 (r23516) +++ branches/OpenMPT-1.28/libopenmpt/dox/changelog.md Sat Jun 14 15:13:43 2025 (r23517) @@ -5,6 +5,8 @@ For fully detailed change log, please see the source repository directly. This is just a high-level summary. +### libopenmpt 0.4.50-pre + ### libopenmpt 0.4.49 (2025-06-14) * [**Bug**] `openmpt::string::get("source_has_mixed_revisions")` and Modified: branches/OpenMPT-1.28/libopenmpt/libopenmpt_version.h ============================================================================== --- branches/OpenMPT-1.28/libopenmpt/libopenmpt_version.h Sat Jun 14 15:13:41 2025 (r23516) +++ branches/OpenMPT-1.28/libopenmpt/libopenmpt_version.h Sat Jun 14 15:13:43 2025 (r23517) @@ -19,11 +19,11 @@ /*! \brief libopenmpt minor version number */ #define OPENMPT_API_VERSION_MINOR 4 /*! \brief libopenmpt patch version number */ -#define OPENMPT_API_VERSION_PATCH 49 +#define OPENMPT_API_VERSION_PATCH 50 /*! \brief libopenmpt pre-release tag */ -#define OPENMPT_API_VERSION_PREREL "" +#define OPENMPT_API_VERSION_PREREL "-pre.0" /*! \brief libopenmpt pre-release flag */ -#define OPENMPT_API_VERSION_IS_PREREL 0 +#define OPENMPT_API_VERSION_IS_PREREL 1 /*! \brief libopenmpt version number as a single integer value * \since 0.3 Modified: branches/OpenMPT-1.28/libopenmpt/libopenmpt_version.mk ============================================================================== --- branches/OpenMPT-1.28/libopenmpt/libopenmpt_version.mk Sat Jun 14 15:13:41 2025 (r23516) +++ branches/OpenMPT-1.28/libopenmpt/libopenmpt_version.mk Sat Jun 14 15:13:43 2025 (r23517) @@ -1,8 +1,8 @@ LIBOPENMPT_VERSION_MAJOR=0 LIBOPENMPT_VERSION_MINOR=4 -LIBOPENMPT_VERSION_PATCH=49 -LIBOPENMPT_VERSION_PREREL= +LIBOPENMPT_VERSION_PATCH=50 +LIBOPENMPT_VERSION_PREREL=-pre.0 LIBOPENMPT_LTVER_CURRENT=1 -LIBOPENMPT_LTVER_REVISION=49 +LIBOPENMPT_LTVER_REVISION=50 LIBOPENMPT_LTVER_AGE=1 |
From: <sv...@op...> - 2025-06-14 15:42:16
|
Author: manx Date: Sat Jun 14 15:13:37 2025 New Revision: 23514 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=23514 Log: [Mod] OpenMPT: Version is now 1.28.10.76 Modified: branches/OpenMPT-1.28/common/versionNumber.h Modified: branches/OpenMPT-1.28/common/versionNumber.h ============================================================================== --- branches/OpenMPT-1.28/common/versionNumber.h Sat Jun 14 15:13:15 2025 (r23513) +++ branches/OpenMPT-1.28/common/versionNumber.h Sat Jun 14 15:13:37 2025 (r23514) @@ -21,7 +21,7 @@ #define VER_MAJORMAJOR 1 #define VER_MAJOR 28 #define VER_MINOR 10 -#define VER_MINORMINOR 75 +#define VER_MINORMINOR 76 //Numerical value of the version. #define MPT_VERSION_CURRENT MAKE_VERSION_NUMERIC(VER_MAJORMAJOR,VER_MAJOR,VER_MINOR,VER_MINORMINOR) |
From: <sv...@op...> - 2025-06-14 15:42:15
|
Author: manx Date: Sat Jun 14 15:13:09 2025 New Revision: 23512 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=23512 Log: [Mod] libopenmpt: Bump patch version. Modified: branches/OpenMPT-1.29/libopenmpt/dox/changelog.md branches/OpenMPT-1.29/libopenmpt/libopenmpt_version.h branches/OpenMPT-1.29/libopenmpt/libopenmpt_version.mk Modified: branches/OpenMPT-1.29/libopenmpt/dox/changelog.md ============================================================================== --- branches/OpenMPT-1.29/libopenmpt/dox/changelog.md Sat Jun 14 15:13:01 2025 (r23511) +++ branches/OpenMPT-1.29/libopenmpt/dox/changelog.md Sat Jun 14 15:13:09 2025 (r23512) @@ -5,6 +5,8 @@ For fully detailed change log, please see the source repository directly. This is just a high-level summary. +### libopenmpt 0.5.38-pre + ### libopenmpt 0.5.37 (2025-06-14) * [**Bug**] `openmpt::string::get("source_has_mixed_revisions")` and Modified: branches/OpenMPT-1.29/libopenmpt/libopenmpt_version.h ============================================================================== --- branches/OpenMPT-1.29/libopenmpt/libopenmpt_version.h Sat Jun 14 15:13:01 2025 (r23511) +++ branches/OpenMPT-1.29/libopenmpt/libopenmpt_version.h Sat Jun 14 15:13:09 2025 (r23512) @@ -19,11 +19,11 @@ /*! \brief libopenmpt minor version number */ #define OPENMPT_API_VERSION_MINOR 5 /*! \brief libopenmpt patch version number */ -#define OPENMPT_API_VERSION_PATCH 37 +#define OPENMPT_API_VERSION_PATCH 38 /*! \brief libopenmpt pre-release tag */ -#define OPENMPT_API_VERSION_PREREL "" +#define OPENMPT_API_VERSION_PREREL "-pre.0" /*! \brief libopenmpt pre-release flag */ -#define OPENMPT_API_VERSION_IS_PREREL 0 +#define OPENMPT_API_VERSION_IS_PREREL 1 /*! \brief libopenmpt version number as a single integer value * \since 0.3 Modified: branches/OpenMPT-1.29/libopenmpt/libopenmpt_version.mk ============================================================================== --- branches/OpenMPT-1.29/libopenmpt/libopenmpt_version.mk Sat Jun 14 15:13:01 2025 (r23511) +++ branches/OpenMPT-1.29/libopenmpt/libopenmpt_version.mk Sat Jun 14 15:13:09 2025 (r23512) @@ -1,8 +1,8 @@ LIBOPENMPT_VERSION_MAJOR=0 LIBOPENMPT_VERSION_MINOR=5 -LIBOPENMPT_VERSION_PATCH=37 -LIBOPENMPT_VERSION_PREREL= +LIBOPENMPT_VERSION_PATCH=38 +LIBOPENMPT_VERSION_PREREL=-pre.0 LIBOPENMPT_LTVER_CURRENT=2 -LIBOPENMPT_LTVER_REVISION=37 +LIBOPENMPT_LTVER_REVISION=38 LIBOPENMPT_LTVER_AGE=2 |
From: <sv...@op...> - 2025-06-14 15:37:27
|
Author: manx Date: Sat Jun 14 15:10:41 2025 New Revision: 23508 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=23508 Log: [Mod] OpenMPT: Version is now 1.30.12.27 Modified: branches/OpenMPT-1.30/common/versionNumber.h Modified: branches/OpenMPT-1.30/common/versionNumber.h ============================================================================== --- branches/OpenMPT-1.30/common/versionNumber.h Sat Jun 14 15:10:28 2025 (r23507) +++ branches/OpenMPT-1.30/common/versionNumber.h Sat Jun 14 15:10:41 2025 (r23508) @@ -18,6 +18,6 @@ #define VER_MAJORMAJOR 1 #define VER_MAJOR 30 #define VER_MINOR 12 -#define VER_MINORMINOR 26 +#define VER_MINORMINOR 27 OPENMPT_NAMESPACE_END |
From: <sv...@op...> - 2025-06-14 15:37:22
|
Author: manx Date: Sat Jun 14 15:10:28 2025 New Revision: 23507 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=23507 Log: [Mod] libopenmpt: Bump patch version. Modified: branches/OpenMPT-1.30/libopenmpt/dox/changelog.md branches/OpenMPT-1.30/libopenmpt/libopenmpt_version.h branches/OpenMPT-1.30/libopenmpt/libopenmpt_version.mk Modified: branches/OpenMPT-1.30/libopenmpt/dox/changelog.md ============================================================================== --- branches/OpenMPT-1.30/libopenmpt/dox/changelog.md Sat Jun 14 15:10:04 2025 (r23506) +++ branches/OpenMPT-1.30/libopenmpt/dox/changelog.md Sat Jun 14 15:10:28 2025 (r23507) @@ -5,6 +5,8 @@ For fully detailed change log, please see the source repository directly. This is just a high-level summary. +### libopenmpt 0.6.24-pre + ### libopenmpt 0.6.23 (2025-06-14) * [**Bug**] `openmpt::string::get("source_has_mixed_revisions")` and Modified: branches/OpenMPT-1.30/libopenmpt/libopenmpt_version.h ============================================================================== --- branches/OpenMPT-1.30/libopenmpt/libopenmpt_version.h Sat Jun 14 15:10:04 2025 (r23506) +++ branches/OpenMPT-1.30/libopenmpt/libopenmpt_version.h Sat Jun 14 15:10:28 2025 (r23507) @@ -21,11 +21,11 @@ /*! \brief libopenmpt minor version number */ #define OPENMPT_API_VERSION_MINOR 6 /*! \brief libopenmpt patch version number */ -#define OPENMPT_API_VERSION_PATCH 23 +#define OPENMPT_API_VERSION_PATCH 24 /*! \brief libopenmpt pre-release tag */ -#define OPENMPT_API_VERSION_PREREL "" +#define OPENMPT_API_VERSION_PREREL "-pre.0" /*! \brief libopenmpt pre-release flag */ -#define OPENMPT_API_VERSION_IS_PREREL 0 +#define OPENMPT_API_VERSION_IS_PREREL 1 /*! \brief libopenmpt version number as a single integer value * \since 0.3 Modified: branches/OpenMPT-1.30/libopenmpt/libopenmpt_version.mk ============================================================================== --- branches/OpenMPT-1.30/libopenmpt/libopenmpt_version.mk Sat Jun 14 15:10:04 2025 (r23506) +++ branches/OpenMPT-1.30/libopenmpt/libopenmpt_version.mk Sat Jun 14 15:10:28 2025 (r23507) @@ -1,8 +1,8 @@ LIBOPENMPT_VERSION_MAJOR=0 LIBOPENMPT_VERSION_MINOR=6 -LIBOPENMPT_VERSION_PATCH=23 -LIBOPENMPT_VERSION_PREREL= +LIBOPENMPT_VERSION_PATCH=24 +LIBOPENMPT_VERSION_PREREL=-pre.0 LIBOPENMPT_LTVER_CURRENT=3 -LIBOPENMPT_LTVER_REVISION=23 +LIBOPENMPT_LTVER_REVISION=24 LIBOPENMPT_LTVER_AGE=3 |
From: <sv...@op...> - 2025-06-14 15:37:21
|
Author: manx Date: Sat Jun 14 15:10:04 2025 New Revision: 23506 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=23506 Log: tag libopenmpt-0.6.23 Added: tags/libopenmpt-0.6.23/ - copied from r23505, branches/OpenMPT-1.30/ |
From: <sv...@op...> - 2025-06-14 15:37:20
|
Author: manx Date: Sat Jun 14 15:08:01 2025 New Revision: 23504 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=23504 Log: [Mod] OpenMPT: Version is now 1.30.12.26 Modified: branches/OpenMPT-1.30/common/versionNumber.h Modified: branches/OpenMPT-1.30/common/versionNumber.h ============================================================================== --- branches/OpenMPT-1.30/common/versionNumber.h Sat Jun 14 15:07:22 2025 (r23503) +++ branches/OpenMPT-1.30/common/versionNumber.h Sat Jun 14 15:08:01 2025 (r23504) @@ -18,6 +18,6 @@ #define VER_MAJORMAJOR 1 #define VER_MAJOR 30 #define VER_MINOR 12 -#define VER_MINORMINOR 25 +#define VER_MINORMINOR 26 OPENMPT_NAMESPACE_END |
From: <sv...@op...> - 2025-06-14 15:37:20
|
Author: manx Date: Sat Jun 14 15:08:39 2025 New Revision: 23505 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=23505 Log: [Mod] libopenmpt: Prepare for release. Modified: branches/OpenMPT-1.30/libopenmpt/dox/changelog.md branches/OpenMPT-1.30/libopenmpt/libopenmpt_version.h branches/OpenMPT-1.30/libopenmpt/libopenmpt_version.mk Modified: branches/OpenMPT-1.30/libopenmpt/dox/changelog.md ============================================================================== --- branches/OpenMPT-1.30/libopenmpt/dox/changelog.md Sat Jun 14 15:08:01 2025 (r23504) +++ branches/OpenMPT-1.30/libopenmpt/dox/changelog.md Sat Jun 14 15:08:39 2025 (r23505) @@ -5,7 +5,7 @@ For fully detailed change log, please see the source repository directly. This is just a high-level summary. -### libopenmpt 0.6.23-pre +### libopenmpt 0.6.23 (2025-06-14) * [**Bug**] `openmpt::string::get("source_has_mixed_revisions")` and `openmpt_get_string("source_has_mixed_revisions")` always returned an empty Modified: branches/OpenMPT-1.30/libopenmpt/libopenmpt_version.h ============================================================================== --- branches/OpenMPT-1.30/libopenmpt/libopenmpt_version.h Sat Jun 14 15:08:01 2025 (r23504) +++ branches/OpenMPT-1.30/libopenmpt/libopenmpt_version.h Sat Jun 14 15:08:39 2025 (r23505) @@ -23,9 +23,9 @@ /*! \brief libopenmpt patch version number */ #define OPENMPT_API_VERSION_PATCH 23 /*! \brief libopenmpt pre-release tag */ -#define OPENMPT_API_VERSION_PREREL "-pre.0" +#define OPENMPT_API_VERSION_PREREL "" /*! \brief libopenmpt pre-release flag */ -#define OPENMPT_API_VERSION_IS_PREREL 1 +#define OPENMPT_API_VERSION_IS_PREREL 0 /*! \brief libopenmpt version number as a single integer value * \since 0.3 Modified: branches/OpenMPT-1.30/libopenmpt/libopenmpt_version.mk ============================================================================== --- branches/OpenMPT-1.30/libopenmpt/libopenmpt_version.mk Sat Jun 14 15:08:01 2025 (r23504) +++ branches/OpenMPT-1.30/libopenmpt/libopenmpt_version.mk Sat Jun 14 15:08:39 2025 (r23505) @@ -1,7 +1,7 @@ LIBOPENMPT_VERSION_MAJOR=0 LIBOPENMPT_VERSION_MINOR=6 LIBOPENMPT_VERSION_PATCH=23 -LIBOPENMPT_VERSION_PREREL=-pre.0 +LIBOPENMPT_VERSION_PREREL= LIBOPENMPT_LTVER_CURRENT=3 LIBOPENMPT_LTVER_REVISION=23 |