// but we can't make the AddItem flags and mask have both, because they'd both have to be true for the
// command to be enabled.
// If user has Undone the entire stack, RedoAvailableFlag is on but UndoAvailableFlag is off.
// If user has done things but not Undone anything, RedoAvailableFlag is off but UndoAvailableFlag is on.
// So in either of those cases, (AudioIONotBusyFlag | UndoAvailableFlag | RedoAvailableFlag) mask
// would fail.
// The only way to fix this in the current architecture is to hack in special cases for RedoAvailableFlag
// in AudacityProject::UpdateMenus() (ugly) and CommandManager::HandleCommandEntry() (*really* ugly --
// shouldn't know about particular command names and flags).
// So for now, enable the command regardless of stack. It will just show empty (except for Created Project) sometimes.
// FOR REDESIGN, clearly there are some limitations with the flags/mask bitmaps.
// Vaughan, 2010-07-30: AudacityProject::OnHistory always calls Show()
// then HistoryWindow::UpdateDisplay, so no need to do it here.
// Vaughan, 2010-10-16: Not on Windows, anyway.
// But Steve reported that on Ubuntu, View > History now crashes,
// so restore it for non-Windows.
Add default EQCurves.xml for Windows.
Remove specific hard drive references in favor of {pf} for Program Files directory.
Increment Audacity version number.
If the Meter Toolbar was monitoring input, PrefsDialog can be opened, but then PrefsDialog::OnOK() needs to StopStream() or AudioIO::HandleDeviceChange() will no-op. We could instead disable the Preferences command while monitoring, i.e., set AudioIONotBusyFlag/AudioIOBusyFlag according to monitoring, as well as gAudioIO->IsAudioTokenActive(). Instead allow it because unlike recording, for example, monitoring is not clearly something that should prohibit opening prefs.
This may have been some of the occasions of bug 29, where user changed device while monitoring, but the AudioIO::HandleDeviceChange() code did not actually change the device, so it look like the user had specificied the motherboard/sound card default device, but Audacity was still using the USB device.
// TO-DO: We *could* be smarter in this method and call HandleDeviceChange()
// only when the device choices actually changed. True of lots of prefs!
// As is, we always stop monitoring and handle the device change.
In AudacityProject::GetUpdateFlags(), don't need to check (GetAudioIOToken() == 0) alternative because gAudioIO->IsAudioTokenActive() checks that it's greater than zero.
In AudioIO.cpp, cleaned up some logic and encapsulation of boolean methods.
Martyn was out of alphabetical order. The reason was that the role values for Leland and Markus were not changed when they were moved to the emeritus list.
Went ahead and split up the developer and support lists, and removed the comment, as that's how they'll appear in the interface and it's easier to alphabetize and maintain same-role lists rather than interleaved.
Ed Musgrove's patch to fix cases where the bug currently occurs.
This does not completely fix the bug, because users can still set modifier keys in the wrong order so they would be two separate entries in CommandManager::mCommandKeyHash, but KeyEventToKeyString() will put them in the expected order, so the version in the expected order will always be the one CommandManager::HandleKey() uses.
Fix auto-recovery failures that Gale reported, when auto-recovered projects had been saved to top-level directories, e.g., "E:\dtmf.aup" on Windows. Problem was with file separators. This DirManager code is quite convoluted, touched by multiple chefs, and called from many places, so this fix does not correct the origination(s) of the problem, but doesn't break anything higher up, and is a failsafe against probably multiple errors at higher levels.
Make some parameter names clearer vs class vars. Readability is better if the names are not lexicographically exactly the same.