comparison base/ViewManager.cpp @ 10:ec6886f0e673

* Fix update and play limits for play-selection mode when not looping * Fix playback in loop mode when no selection -- but the GUI update for this is still wrong on the flyback * Various fixes and improvements to making selections, particularly during playback * Draw selection under non-opaque non-scrollable layers, so as to improve cacheing * Show selection limits as text when drawing selection * Allow user to find missing audio files when loading session * Cross-fade selections when in play-selection mode -- mostly. We don't cross-fade on a processing block boundary, and unfortunately with short selections the selection boundary is quite likely to coincide with a block boundary.
author Chris Cannam
date Wed, 25 Jan 2006 17:46:28 +0000
parents 73d85d19919f
children cc98d496d52b
comparison
equal deleted inserted replaced
9:73d85d19919f 10:ec6886f0e673
136 //!!! Likewise this needs to cope correctly with the situation 136 //!!! Likewise this needs to cope correctly with the situation
137 //where selection is not one of the original selection set but 137 //where selection is not one of the original selection set but
138 //simply overlaps one of them (cutting down the original selection 138 //simply overlaps one of them (cutting down the original selection
139 //appropriately) 139 //appropriately)
140 140
141 m_selections.erase(selection); 141 if (m_selections.find(selection) != m_selections.end()) {
142 142 m_selections.erase(selection);
143 emit selectionChanged(); 143 emit selectionChanged();
144 }
144 } 145 }
145 146
146 void 147 void
147 ViewManager::clearSelections() 148 ViewManager::clearSelections()
148 { 149 {
149 m_selections.clear(); 150 if (!m_selections.empty()) {
150 151 m_selections.clear();
151 emit selectionChanged(); 152 emit selectionChanged();
153 }
152 } 154 }
153 155
154 Selection 156 Selection
155 ViewManager::getContainingSelection(size_t frame, bool defaultToFollowing) 157 ViewManager::getContainingSelection(size_t frame, bool defaultToFollowing)
156 { 158 {
221 { 223 {
222 while (!m_playParameters.empty()) { 224 while (!m_playParameters.empty()) {
223 delete m_playParameters.begin()->second; 225 delete m_playParameters.begin()->second;
224 m_playParameters.erase(m_playParameters.begin()); 226 m_playParameters.erase(m_playParameters.begin());
225 } 227 }
228 }
229
230 void
231 ViewManager::playStatusChanged(bool playing)
232 {
233 checkPlayStatus();
226 } 234 }
227 235
228 void 236 void
229 ViewManager::checkPlayStatus() 237 ViewManager::checkPlayStatus()
230 { 238 {