Screenshot instructions:
Windows
Mac
Red Hat Linux
Ubuntu
Click URL instructions:
Right-click on ad, choose "Copy Link", then paste here →
(This may not be possible with some types of ads)
You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(218) |
Aug
(350) |
Sep
(401) |
Oct
(117) |
Nov
(190) |
Dec
(205) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
(135) |
Feb
(53) |
Mar
(413) |
Apr
(291) |
May
(211) |
Jun
(71) |
Jul
(138) |
Aug
(20) |
Sep
(217) |
Oct
(127) |
Nov
(33) |
Dec
(26) |
2008 |
Jan
(11) |
Feb
(32) |
Mar
(59) |
Apr
(31) |
May
(14) |
Jun
(36) |
Jul
(16) |
Aug
(33) |
Sep
(19) |
Oct
(17) |
Nov
(40) |
Dec
(11) |
2009 |
Jan
(48) |
Feb
(21) |
Mar
|
Apr
(4) |
May
(5) |
Jun
(2) |
Jul
(2) |
Aug
(1) |
Sep
(2) |
Oct
(1) |
Nov
(1) |
Dec
|
2010 |
Jan
(1) |
Feb
(1) |
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
|
|
|
|
1
|
2
|
3
|
4
(1) |
5
|
6
|
7
(4) |
8
(4) |
9
(4) |
10
|
11
|
12
(1) |
13
(1) |
14
(1) |
15
(4) |
16
(3) |
17
|
18
|
19
|
20
(9) |
21
|
22
|
23
|
24
|
25
|
26
(2) |
27
(4) |
28
(3) |
29
(7) |
30
|
31
|
From: <timdewhirst@us...> - 2009-01-27 09:29:16
|
Revision: 1460 http://openlibraries.svn.sourceforge.net/openlibraries/?rev=1460&view=rev Author: timdewhirst Date: 2009-01-27 09:29:12 +0000 (Tue, 27 Jan 2009) Log Message: ----------- OML * fixes for openal plugin * use correct flags when recovering buffers * simplify functionality of flush(), complete() * N.B. ensure that no frames are being pushed during a call to complete() or flush() Modified Paths: -------------- trunk/src/openmedialib/plugins/openal/openal_plugin.cpp Modified: trunk/src/openmedialib/plugins/openal/openal_plugin.cpp =================================================================== --- trunk/src/openmedialib/plugins/openal/openal_plugin.cpp 2009-01-27 09:26:10 UTC (rev 1459) +++ trunk/src/openmedialib/plugins/openal/openal_plugin.cpp 2009-01-27 09:29:12 UTC (rev 1460) @@ -13,6 +13,7 @@ #include <openmedialib/ml/openmedialib_plugin.hpp> #include <openpluginlib/pl/timer.hpp> +#include <openpluginlib/pl/log.hpp> #ifdef WIN32 #include <windows.h> @@ -70,31 +71,31 @@ assert( refs >= 0 && L"openal_plugin::refinit: refs is negative." ); - if( init > 0 && ++refs == 1 ) + if ( init > 0 && ++refs == 1 ) { - assert( context==NULL && L"openal_plugin::refinit: already have context." ); - assert( device==NULL && L"openal_plugin::refinit: already have device." ); - - // Initialise the op - // Initialise the openal libs - device = alcOpenDevice( NULL ); - if( alcGetError( device ) == ALC_NO_ERROR ) - context = alcCreateContext( device, NULL ); - if ( context != NULL ) - alcMakeContextCurrent( context ); + assert( context==NULL && L"openal_plugin::refinit: already have context." ); + assert( device==NULL && L"openal_plugin::refinit: already have device." ); + + // Initialise the op + // Initialise the openal libs + device = alcOpenDevice( NULL ); + if( alcGetError( device ) == ALC_NO_ERROR ) + context = alcCreateContext( device, NULL ); + if ( context != NULL ) + alcMakeContextCurrent( context ); } - else if( init < 0 && --refs == 0 ) + else if ( init < 0 && --refs == 0 ) { - // Uninitialise - if ( context != NULL ) - { - alcMakeContextCurrent( NULL ); - alcDestroyContext( context ); - context = NULL; - alcCloseDevice( device ); - device = NULL; + // Uninitialise + if ( context != NULL ) + { + alcMakeContextCurrent( NULL ); + alcDestroyContext( context ); + context = NULL; + alcCloseDevice( device ); + device = NULL; + } } - } } } @@ -169,8 +170,8 @@ int error = alGetError(); if ( error != AL_NO_ERROR ) { - std::cerr << "openal_store::recover: an error occured when calling alGetSourcei: " << error << "\n"; - return; + std::cerr << "openal_store::recover: an error occured when calling alGetSourcei: " << error << "\n"; + return; } // Special case - if we have no buffers processed and no more available @@ -184,9 +185,6 @@ if ( processed == 0 ) return; - if ( flag == AL_BUFFERS_QUEUED && processed && !buffers_.empty() ) - buffers_.clear(); - // Unqueue the processed buffers and return them to our pool std::vector< ALuint > recovered( processed ); alSourceUnqueueBuffers( source_, processed, &recovered[0] ); @@ -236,6 +234,8 @@ // Recover any played out buffers recover( ); + // DEBUG_LOG << "buffers: " << buffers_.size(); + // If we have audio in this frame then schedule for playout if ( aud != 0 && buffers_.size( ) > 0 ) { @@ -260,6 +260,10 @@ alSourceQueueBuffers( source_, 1, &( *buffers_.begin( ) ) ); buffers_.pop_front( ); } + else + { + DEBUG_LOG << aud << ", " << buffers_.size(); + } // Make sure the source is playing if ( buffers_.size( ) == 0 ) @@ -270,25 +274,29 @@ virtual frame_type_ptr flush( ) { - stop( ); - recover( AL_BUFFERS_QUEUED ); + // save state + ALenum state; + alGetSourcei( source_, AL_SOURCE_STATE, &state ); + + // play to enable recovery of all buffers + play(); + while ( buffers_.size( ) < prop_preroll_.value< int >( ) ) + { + // DEBUG_LOG << "buffers: " << buffers_.size() << ", preroll: " << prop_preroll_.value< int >(); + recover(); + } + + // restore state + if ( state != AL_PLAYING ) + alSourceStop( source_ ); + return frame_type_ptr( ); } virtual void complete( ) { - // Force play - play( ); - - // Recover all buffers - ALenum state; - alGetSourcei( source_, AL_SOURCE_STATE, &state ); - while ( state == AL_PLAYING && buffers_.size( ) < prop_preroll_.value< int >( ) ) - { - recover( AL_BUFFERS_QUEUED ); - alGetSourcei( source_, AL_SOURCE_STATE, &state ); - } - stop( ); + flush(); + stop(); } virtual bool empty( ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <timdewhirst@us...> - 2009-01-27 09:26:14
|
Revision: 1459 http://openlibraries.svn.sourceforge.net/openlibraries/?rev=1459&view=rev Author: timdewhirst Date: 2009-01-27 09:26:10 +0000 (Tue, 27 Jan 2009) Log Message: ----------- OPL * allow log to be used from non-opl namespaces Modified Paths: -------------- trunk/src/openpluginlib/pl/log.hpp Modified: trunk/src/openpluginlib/pl/log.hpp =================================================================== --- trunk/src/openpluginlib/pl/log.hpp 2009-01-26 23:28:08 UTC (rev 1458) +++ trunk/src/openpluginlib/pl/log.hpp 2009-01-27 09:26:10 UTC (rev 1459) @@ -53,11 +53,14 @@ std::ostream* os_; }; +} } + +namespace pl = olib::openpluginlib; + #define STANDARD_PREAMBLE __FILE__ << ", L" << __LINE__ << ", " << __FUNCTION__ << ":" -#define DEBUG_LOG Log( Log::Debug( 3, "debug: " ) ) << STANDARD_PREAMBLE -#define DEBUG_LOG_V Log( Log::Debug( 4, "debug: " ) ) << STANDARD_PREAMBLE -#define DEBUG_LOG_VV Log( Log::Debug( 5, "debug: " ) ) << STANDARD_PREAMBLE -#define WARNING_LOG Log( Log::Warning( "warning: " ) ) << STANDARD_PREAMBLE -#define CRITICAL_LOG Log( Log::Critical( "critical: " ) ) << STANDARD_PREAMBLE +#define DEBUG_LOG pl::Log( pl::Log::Debug( 3, "debug: " ) ) << STANDARD_PREAMBLE +#define DEBUG_LOG_V pl::Log( pl::Log::Debug( 4, "debug: " ) ) << STANDARD_PREAMBLE +#define DEBUG_LOG_VV pl::Log( pl::Log::Debug( 5, "debug: " ) ) << STANDARD_PREAMBLE +#define WARNING_LOG pl::Log( pl::Log::Warning( "warning: " ) ) << STANDARD_PREAMBLE +#define CRITICAL_LOG pl::Log( pl::Log::Critical( "critical: " ) ) << STANDARD_PREAMBLE -} } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <timdewhirst@us...> - 2009-01-27 09:24:54
|
Revision: 275 http://editopia.svn.sourceforge.net/editopia/?rev=275&view=rev Author: timdewhirst Date: 2009-01-27 09:24:51 +0000 (Tue, 27 Jan 2009) Log Message: ----------- cinesuite * add method to check if a get is in progress * set state of cancel button correctly * add more feedback in download dialog Modified Paths: -------------- cinesuite/cineplay-cinecode/trunk/src/Download.cpp cinesuite/cineplay-cinecode/trunk/src/HttpGetter.cpp cinesuite/cineplay-cinecode/trunk/src/HttpGetter.hpp Modified: cinesuite/cineplay-cinecode/trunk/src/Download.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/Download.cpp 2009-01-27 09:19:57 UTC (rev 274) +++ cinesuite/cineplay-cinecode/trunk/src/Download.cpp 2009-01-27 09:24:51 UTC (rev 275) @@ -339,6 +339,8 @@ f.close(); ui.cancel->setEnabled( false ); emit done( resolved.local, resolved.title ); + + ui.progress_label->setText( tr( "download complete" ) ); } void onStart() @@ -349,6 +351,9 @@ if ( url.isEmpty() ) return; + // ensure we can cancel + ui.cancel->setEnabled( true ); + // select correct page ui.stackedWidget->setCurrentWidget( ui.progress_page ); @@ -421,8 +426,10 @@ void Download::show() { - // select correct page - impl_->ui.stackedWidget->setCurrentWidget( impl_->ui.url_page ); + // select correct page if we're not already doing something + if ( !impl_->http.busy() ) + impl_->ui.stackedWidget->setCurrentWidget( impl_->ui.url_page ); + impl_->skinDlg->show(); } Modified: cinesuite/cineplay-cinecode/trunk/src/HttpGetter.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/HttpGetter.cpp 2009-01-27 09:19:57 UTC (rev 274) +++ cinesuite/cineplay-cinecode/trunk/src/HttpGetter.cpp 2009-01-27 09:24:51 UTC (rev 275) @@ -30,7 +30,6 @@ #include <QPointer> #include <QHttpResponseHeader> #include <QUrl> -#include <QHttpResponseHeader> // std #include <list> @@ -109,6 +108,12 @@ int currentId; int redirects; QIODevice* io; + + QString toString() const + { + return QString( "originalId: %1, currentId: %2, redirects: %3, io: %4" ) + .arg( originalId ).arg( currentId ).arg( redirects ).arg( (unsigned int)io ); + } }; typedef std::list< RequestState > RequestStateList; @@ -136,7 +141,7 @@ private: int id_; }; - + /// HttpGetter class HttpGetter::HttpGetterPrivate : public QObject { @@ -165,11 +170,16 @@ public slots: void onRequestFinished( int id, bool e ) { + DEBUG_LOG << "id: " << id << " error: " << e; + RequestStateList::iterator I = std::find_if( requestStateList.begin(), requestStateList.end(), CurrentIdP( id ) ); if ( I == requestStateList.end() ) + { + DEBUG_LOG << "no request found"; return; + } if ( e ) { @@ -184,6 +194,7 @@ // this is a request we know something about // check for a redirect QHttpResponseHeader response = http.lastResponse(); + { DEBUG_LOG << qPrintable( response.toString() ); } switch( response.statusCode() ) { case 301: @@ -196,6 +207,8 @@ QUrl url( response.value( "Location" ) ); http.setHost( url.host() ); I->currentId = http.get( url.toString(), I->io ); + + DEBUG_LOG << "redirect: " << qPrintable( I->toString() ) << " url: " << qPrintable( url.toString() ); return; } else @@ -243,9 +256,16 @@ int requestkey = impl_->http.get( url.toString(), output ); impl_->requestStateList.push_back( RequestState( requestkey, requestkey, output ) ); + DEBUG_LOG << "path: " << qPrintable( path ) << " request: " << qPrintable( impl_->requestStateList.back().toString() ); + return Request( this, requestkey ); } +bool HttpGetter::busy() const +{ + return impl_->http.currentId() || impl_->http.hasPendingRequests(); +} + void HttpGetter::abort() { impl_->http.abort(); Modified: cinesuite/cineplay-cinecode/trunk/src/HttpGetter.hpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/HttpGetter.hpp 2009-01-27 09:19:57 UTC (rev 274) +++ cinesuite/cineplay-cinecode/trunk/src/HttpGetter.hpp 2009-01-27 09:24:51 UTC (rev 275) @@ -68,6 +68,9 @@ /// GET Request get( const QString& path, QIODevice* output ); + /// are we processing a request? + bool busy() const; + // kills all requests void abort(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <timdewhirst@us...> - 2009-01-27 09:20:02
|
Revision: 274 http://editopia.svn.sourceforge.net/editopia/?rev=274&view=rev Author: timdewhirst Date: 2009-01-27 09:19:57 +0000 (Tue, 27 Jan 2009) Log Message: ----------- cinesuite * stop active player before changing media * increase pre-roll length slightly * add a quit method to cleanly shutdown player * set audio store properties before init() Modified Paths: -------------- cinesuite/cineplay-cinecode/trunk/src/Common.cpp cinesuite/cineplay-cinecode/trunk/src/Common.hpp Modified: cinesuite/cineplay-cinecode/trunk/src/Common.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/Common.cpp 2009-01-20 14:57:14 UTC (rev 273) +++ cinesuite/cineplay-cinecode/trunk/src/Common.cpp 2009-01-27 09:19:57 UTC (rev 274) @@ -149,7 +149,7 @@ CineUtils::ConnectButtonTo(parent, WIDGET_MINIMISE, this, SLOT(onShowMinimized()) ); CineUtils::ConnectButtonTo(parent, WIDGET_MAXIMISE, this, SLOT(toggleMaximized()) ); - CineUtils::ConnectButtonTo(parent, WIDGET_CLOSE, qApp, SLOT( quit() ) ); + CineUtils::ConnectButtonTo(parent, WIDGET_CLOSE, this, SLOT( onQuit() ) ); m_playButton = qobject_cast< QPushButton* >( CineUtils::ConnectButtonTo(h2, WIDGET_PLAY, this, SLOT(onPlay())) ); CineUtils::ConnectButtonTo(h2, WIDGET_STEPBACK, this, SLOT(onStepBack())); @@ -217,7 +217,7 @@ m_fileMenu->addAction( tr( "&close" ), this, SLOT( onClose() ) ); //m_fileMenu->addAction( tr( "save &as" ), this, SLOT( onSaveAs() ) ); - m_fileMenu->addAction( tr( "&quit" ), qApp, SLOT( quit() ) ); + m_fileMenu->addAction( tr( "&quit" ), this, SLOT( onQuit() ) ); m_menubar->addMenu( m_fileMenu ); // view @@ -499,7 +499,7 @@ int audioBuffer = 0; { QSettings settings; - audioPreRoll = settings.value( SETTINGS_AUDIOPREROLL, 8 ).toInt(); + audioPreRoll = settings.value( SETTINGS_AUDIOPREROLL, 10 ).toInt(); audioBuffer = settings.value( SETTINGS_AUDIOBUFFER, 1024 ).toInt(); } @@ -512,7 +512,11 @@ m_audioStore = ml::create_store( storeTypeAudio.toStdWString(), ml::frame_type_ptr() ); audio_success &= ( m_audioStore != ml::store_type_ptr() ); if ( audio_success ) + { + m_audioStore->properties().get_property_with_string( "preroll" ).set( audioPreRoll ); + m_audioStore->properties().get_property_with_string( "buffer" ).set( audioBuffer ); audio_success &= m_audioStore->init(); + } if ( audio_success ) break; @@ -538,9 +542,6 @@ QMessageBox::NoButton ); return false; } - - m_audioStore->properties().get_property_with_string( "preroll" ).set( audioPreRoll ); - m_audioStore->properties().get_property_with_string( "buffer" ).set( audioBuffer ); } m_players = PlayerMultiplexerPtr( new PlayerMultiplexer( m_audioStore, m_jwStore ) ); @@ -626,10 +627,11 @@ if ( fnames.size() == 1 ) m_info->update( fnames[0] ); } + + activePlayer()->stop(); // ensure the audio store is reset m_audioStore->complete(); - m_audioStore->init(); // setup m_jwStore->set_store_count( fnames.size() ); @@ -1071,9 +1073,10 @@ m_parent->setWindowTitle( title ); + activePlayer()->stop(); + // ensure the audio store is reset m_audioStore->complete(); - m_audioStore->init(); // setup m_jwStore->set_store_count( 1 ); @@ -1115,6 +1118,14 @@ DEBUG_LOG; } +void Common::onQuit() +{ + DEBUG_LOG; + + activePlayer()->stop(); + qApp->quit(); +} + void Common::onMruSelected() { DEBUG_LOG; Modified: cinesuite/cineplay-cinecode/trunk/src/Common.hpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/Common.hpp 2009-01-20 14:57:14 UTC (rev 273) +++ cinesuite/cineplay-cinecode/trunk/src/Common.hpp 2009-01-27 09:19:57 UTC (rev 274) @@ -92,6 +92,7 @@ void onLoadSequence(); void onClose(); void onSaveAs(); + void onQuit(); // display options void onViewHalfSize( bool ); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |