Changeset 3318

Show
Ignore:
Timestamp:
08/24/04 15:25:45 (10 years ago)
Author:
robert
Message:

Added support for looping mode

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • OpenSceneGraph/trunk/src/osgPlugins/quicktime/QuicktimeImageStream.cpp

    r3223 r3318  
    4747 
    4848    {     
    49         OpenThreads::ScopedLock<OpenThreads::Mutex> lock(*s_qtMutex); 
    50         osgQuicktime::initQuicktime();  
     49        OpenThreads::ScopedLock<OpenThreads::Mutex> lock(*s_qtMutex); 
     50        osgQuicktime::initQuicktime();  
    5151    } 
    5252         
     
    154154        ThreadCommand cmd = getCmd(); 
    155155 
    156         float currentTime=0.0f; 
    157          
     156        float currentTime=0.0f; 
     157     
    158158        { 
    159159            OpenThreads::ScopedLock<OpenThreads::Mutex> lock(*s_qtMutex); 
     
    168168                    case THREAD_STOP: 
    169169                        SetMovieRate(_data->getMovie(),0); 
    170                         osg::notify(NOTICE) << "QT-ImageStream: stop at "<< std::endl; 
     170                        osg::notify(INFO) << "QT-ImageStream: stop at "<< std::endl; 
    171171                        playing = false; 
    172172                        break; 
     
    183183                    case THREAD_QUIT: // TODO 
    184184                        SetMovieRate(_data->getMovie(),0); 
    185                         osg::notify(NOTICE) << "QT-ImageStream: quit" << std::endl; 
     185                        osg::notify(INFO) << "QT-ImageStream: quit" << std::endl; 
    186186                        //playing = false; 
    187187                        done = true; 
     
    195195            MoviesTask(_data->getMovie(),0); 
    196196 
    197             currentTime = _data->getMovieTime(); 
     197            currentTime = _data->getMovieTime(); 
    198198        } 
    199199         
    200200 
    201         if (_lastUpdate!= currentTime) { 
     201        if (_lastUpdate!= currentTime)  
     202        { 
     203 
    202204            dirty(); 
    203205            _lastUpdate = currentTime; 
     206 
     207            if (currentTime>=_data->getMovieDuration()) 
     208            { 
     209                if (getLoopingMode()==LOOPING) 
     210                { 
     211                    rewind(); 
     212                    play(); 
     213                } 
     214                else 
     215                { 
     216                    pause(); 
     217                } 
     218            } 
     219 
    204220        } 
    205221         
    206         if (playing) { 
     222        if (playing) 
     223        { 
    207224            // TODO 
    208225        } 
    209226        else if (!done) 
    210         { 
     227        { 
    211228            ::usleep(IDLE_TIMEOUT); 
    212229        }