Mercurial > hg > svgui
comparison view/ViewManager.cpp @ 689:d8fc9659a206
Remove polling on play status, eliminating one source of idle wakeups (requires connection to playStatusChanged from callback play source)
author | Chris Cannam |
---|---|
date | Tue, 03 Dec 2013 12:34:38 +0000 |
parents | 1a0dfcbffaf1 |
children | ad12e428785b |
comparison
equal
deleted
inserted
replaced
683:692a8b9804fe | 689:d8fc9659a206 |
---|---|
451 } | 451 } |
452 | 452 |
453 void | 453 void |
454 ViewManager::playStatusChanged(bool /* playing */) | 454 ViewManager::playStatusChanged(bool /* playing */) |
455 { | 455 { |
456 #ifdef DEBUG_VIEW_MANAGER | |
457 cerr << "ViewManager::playStatusChanged" << endl; | |
458 #endif | |
456 checkPlayStatus(); | 459 checkPlayStatus(); |
457 } | 460 } |
458 | 461 |
459 void | 462 void |
460 ViewManager::checkPlayStatus() | 463 ViewManager::checkPlayStatus() |
480 | 483 |
481 QTimer::singleShot(20, this, SLOT(checkPlayStatus())); | 484 QTimer::singleShot(20, this, SLOT(checkPlayStatus())); |
482 | 485 |
483 } else { | 486 } else { |
484 | 487 |
485 QTimer::singleShot(100, this, SLOT(checkPlayStatus())); | |
486 | |
487 if (m_lastLeft != 0.0 || m_lastRight != 0.0) { | 488 if (m_lastLeft != 0.0 || m_lastRight != 0.0) { |
488 emit outputLevelsChanged(0.0, 0.0); | 489 emit outputLevelsChanged(0.0, 0.0); |
489 m_lastLeft = 0.0; | 490 m_lastLeft = 0.0; |
490 m_lastRight = 0.0; | 491 m_lastRight = 0.0; |
491 } | 492 } |
492 | 493 |
493 #ifdef DEBUG_VIEW_MANAGER | 494 #ifdef DEBUG_VIEW_MANAGER |
494 // cerr << "ViewManager::checkPlayStatus: Not playing" << endl; | 495 cerr << "ViewManager::checkPlayStatus: Not playing" << endl; |
495 #endif | 496 #endif |
496 } | 497 } |
497 } | 498 } |
498 | 499 |
499 bool | 500 bool |