Changeset 1087
- Timestamp:
- 04/27/09 03:41:57 (4 years ago)
- Location:
- branches/transport_redesign_2/libs/hydrogen
- Files:
-
- 2 modified
-
include/hydrogen/hydrogen.h (modified) (3 diffs)
-
src/hydrogen.cpp (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/transport_redesign_2/libs/hydrogen/include/hydrogen/hydrogen.h
r1080 r1087 101 101 102 102 unsigned long getTickPosition(); 103 unsigned long getRealtimeTickPosition();104 unsigned long getTotalFrames();105 103 unsigned long getRealtimeFrames(); 106 104 107 105 108 106 PatternList * getCurrentPatternList(); 109 void setCurrentPatternList( PatternList * pPatternList );110 107 111 108 PatternList * getNextPatterns(); … … 114 111 void setPatternPos( int pos ); 115 112 116 void triggerRelocateDuringPlay();117 118 113 long getTickForPosition( int ); 119 114 … … 206 201 float getNewBpmJTM(); 207 202 void setNewBpmJTM( float bpmJTM); 208 void ComputeHumantimeFrames(uint32_t nFrames);209 203 210 204 void __panic(); -
branches/transport_redesign_2/libs/hydrogen/src/hydrogen.cpp
r1084 r1087 1772 1772 } 1773 1773 1774 1775 1776 unsigned long Hydrogen::getRealtimeTickPosition()1777 {1778 //unsigned long initTick = audioEngine_getTickPosition();1779 unsigned int initTick = ( unsigned int )( m_nRealtimeFrames1780 / m_pAudioDriver->m_transport.m_nTickSize );1781 unsigned long retTick;1782 1783 struct timeval currtime;1784 struct timeval deltatime;1785 1786 double sampleRate = ( double ) m_pAudioDriver->getSampleRate();1787 gettimeofday ( &currtime, NULL );1788 1789 timersub( &currtime, &m_currentTickTime, &deltatime );1790 1791 // add a buffers worth for jitter resistance1792 double deltaSec =1793 ( double ) deltatime.tv_sec1794 + ( deltatime.tv_usec / 1000000.0 )1795 + ( m_pAudioDriver->getBufferSize() / ( double )sampleRate );1796 1797 retTick = ( unsigned long ) ( ( sampleRate1798 / ( double ) m_pAudioDriver->m_transport.m_nTickSize )1799 * deltaSec );1800 1801 retTick = initTick + retTick;1802 1803 return retTick;1804 }1805 1806 1807 1808 1774 PatternList* Hydrogen::getCurrentPatternList() 1809 1775 { 1810 return m_pPlayingPatterns; 1776 TransportPosition pos; 1777 m_transport->get_position(&pos); 1778 return m_pSong->get_pattern_group_vector()[pos.bar]; 1811 1779 } 1812 1780 1813 1781 PatternList * Hydrogen::getNextPatterns() 1814 1782 { 1815 return m_pNextPatterns; 1783 TransportPosition pos; 1784 m_transport->get_position(&pos); 1785 return m_pSong->get_pattern_group_vector()[pos.bar + 1]; 1816 1786 } 1817 1787 … … 1984 1954 return m_audioEngineState; 1985 1955 } 1986 1987 1988 1989 void Hydrogen::setCurrentPatternList( PatternList *pPatternList )1990 {1991 AudioEngine::get_instance()->lock( "Hydrogen::setCurrentPatternList" );1992 m_pPlayingPatterns = pPatternList;1993 EventQueue::get_instance()->push_event( EVENT_PATTERN_CHANGED, -1 );1994 AudioEngine::get_instance()->unlock();1995 }1996 1997 1998 1956 1999 1957 float Hydrogen::getProcessTime() … … 2177 2135 2178 2136 2179 unsigned long Hydrogen::getTotalFrames()2180 {2181 return m_pAudioDriver->m_transport.m_nFrames;2182 }2183 2184 2137 unsigned long Hydrogen::getRealtimeFrames() 2185 2138 { … … 2522 2475 2523 2476 2524 void Hydrogen::ComputeHumantimeFrames(uint32_t nFrames)2525 {2526 if ( ( m_audioEngineState == STATE_PLAYING ) )2527 m_nHumantimeFrames = nFrames + m_nHumantimeFrames;2528 }2529 2530 2531 2477 //~ jack transport master 2532 2533 void Hydrogen::triggerRelocateDuringPlay()2534 {2535 if ( m_pSong->get_mode() == Song::PATTERN_MODE )2536 m_nPatternStartTick = -1; // This forces the barline position2537 }2538 2539 2478 2540 2479 void Hydrogen::togglePlaysSelected()