Mercurial > hg > easaier-soundaccess
changeset 145:e63e8272dcb0
the video size is updated automatically
author | benoitrigolleau |
---|---|
date | Tue, 13 Nov 2007 17:23:53 +0000 |
parents | f3dce7a985cf |
children | 69061754408f |
files | data/fileio/VideoFileReader.cpp data/fileio/VideoFileReader.h data/model/SDLWidget.cpp data/model/SDLWidget.h sv/main/MainWindow.cpp sv/main/MainWindow.h sv/sound_access.vcproj widgets/QueryResultsWidget.cpp widgets/svwidgets.vcproj |
diffstat | 9 files changed, 58 insertions(+), 18 deletions(-) [+] |
line wrap: on
line diff
--- a/data/fileio/VideoFileReader.cpp Tue Nov 13 11:09:57 2007 +0000 +++ b/data/fileio/VideoFileReader.cpp Tue Nov 13 17:23:53 2007 +0000 @@ -192,6 +192,11 @@ // we get the size from our active video stream, if no active video stream // exists, width and height are set to default values (320x240) SDL_ffmpegGetVideoSize(file, &w, &h); + + MainWindow * MWins=MainWindow::instance(); + MWins->setSDLInitSize(w,h); + + SDL_Init(SDL_INIT_VIDEO); Videow=w; Videoh=h;
--- a/data/fileio/VideoFileReader.h Tue Nov 13 11:09:57 2007 +0000 +++ b/data/fileio/VideoFileReader.h Tue Nov 13 17:23:53 2007 +0000 @@ -52,7 +52,9 @@ SDL_Surface *screen; SDL_ffmpegFile* film; QProgressDialog *m_progress; - bool m_cancelled; + bool m_cancelled; + int m_width; + int m_height;
--- a/data/model/SDLWidget.cpp Tue Nov 13 11:09:57 2007 +0000 +++ b/data/model/SDLWidget.cpp Tue Nov 13 17:23:53 2007 +0000 @@ -5,16 +5,13 @@ extern int Videow; extern int Videoh; -#define MIN_WIDTH 320 -#define MIN_HEIGHT 240 - SDLWidget::SDLWidget() - :windowInitialized(false), screen(0) + :windowInitialized(false), screen(0),m_width(0), m_height(0) { setAttribute(Qt::WA_PaintOnScreen); setAttribute(Qt::WA_NoSystemBackground); zoomFactor = 1; - setMinimumSize( MIN_WIDTH*zoomFactor,MIN_HEIGHT*zoomFactor ); + connect(this,SIGNAL(initSizeChanged()),this,SLOT(updateMinSize())); } @@ -31,11 +28,13 @@ return; zoomFactor = f; + emit(zoomfactorChanged(f)); - w = MIN_WIDTH*zoomFactor; - h = MIN_HEIGHT*zoomFactor; + w = m_width*zoomFactor; + h = m_height*zoomFactor; setMinimumSize( w, h ); emit(sizeChanged(w,h)); + emit(zoomfactorChanged(f)); /*QWidget *p = dynamic_cast<QWidget*>( parent() ); if( p ){ @@ -48,13 +47,27 @@ float f; f = zoomFactor + 0.001*event->delta(); - if( f < 32.0/MIN_WIDTH ){ - f = 32.0/MIN_WIDTH; + if( f < 32.0/m_width ){ + f = 32.0/m_height; } setZoomFactor( f ); } +void SDLWidget::setInitSize(int w, int h){ + if(m_width<=0 && m_height<=0){ + m_width = w; + m_height =h; + emit(initSizeChanged()); + } +} + +void SDLWidget::updateMinSize() +{ + setMinimumSize( m_width*zoomFactor,m_height*zoomFactor ); +} + + void SDLWidget::showEvent(QShowEvent *e) {
--- a/data/model/SDLWidget.h Tue Nov 13 11:09:57 2007 +0000 +++ b/data/model/SDLWidget.h Tue Nov 13 17:23:53 2007 +0000 @@ -19,21 +19,29 @@ public: SDLWidget(); virtual ~SDLWidget(); + void setInitSize(int w, int h); signals: void sizeChanged(int w, int h); + void zoomfactorChanged(int factor); + void initSizeChanged(); public slots: void setZoomFactor( float ); void wheelEvent( QWheelEvent* ); protected: - + bool windowInitialized; SDL_Surface *screen; + int m_width; + int m_height; virtual void showEvent(QShowEvent *e); +protected slots: + void updateMinSize(); + private: float zoomFactor; };
--- a/sv/main/MainWindow.cpp Tue Nov 13 11:09:57 2007 +0000 +++ b/sv/main/MainWindow.cpp Tue Nov 13 17:23:53 2007 +0000 @@ -109,8 +109,6 @@ #include <cstdio> #include <errno.h> -#include "data/model/SDLWidget.h" - using std::cerr; using std::endl; @@ -319,11 +317,11 @@ /****************************/ /************video***********/ - SDLWidget* tt = new SDLWidget(); + m_sdlWidget = new SDLWidget(); QHBoxLayout *videoHLayout= new QHBoxLayout; videoHLayout->addStretch(); - videoHLayout->addWidget(tt); + videoHLayout->addWidget(m_sdlWidget); videoHLayout->addStretch(); QVBoxLayout *videoVLayout= new QVBoxLayout; videoVLayout->addStretch(); @@ -5497,3 +5495,10 @@ m_document->removeFilter(name); } +SDLWidget* MainWindow::getSDLWidget(){ + return m_sdlWidget; +} + +void MainWindow::setSDLInitSize(int w, int h){ + m_sdlWidget->setInitSize(w,h); +} \ No newline at end of file
--- a/sv/main/MainWindow.h Tue Nov 13 11:09:57 2007 +0000 +++ b/sv/main/MainWindow.h Tue Nov 13 17:23:53 2007 +0000 @@ -40,6 +40,7 @@ //Ivan Damnjanovic 12/07/2007 #include "data/fileio/VideoFileReader.h" +#include "data/model/SDLWidget.h" #include <map> @@ -128,6 +129,9 @@ QWidget* getVideoWidget(); + SDLWidget* getSDLWidget(); + void setSDLInitSize(int w, int h); + float inline getPlaySpeedVal() const { return m_playSpeedVal;} signals: @@ -312,6 +316,7 @@ void exit(); protected: + SDLWidget *m_sdlWidget; QWidget *m_videoWidget; QString m_sessionFile; QString m_audioFile;
--- a/sv/sound_access.vcproj Tue Nov 13 11:09:57 2007 +0000 +++ b/sv/sound_access.vcproj Tue Nov 13 17:23:53 2007 +0000 @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="Windows-1252"?> <VisualStudioProject ProjectType="Visual C++" - Version="8.00" + Version="8,00" Name="sound-access" ProjectGUID="{D98C1DD4-008F-34B2-A980-0998ECF8427E}" RootNamespace="sound-access"
--- a/widgets/QueryResultsWidget.cpp Tue Nov 13 11:09:57 2007 +0000 +++ b/widgets/QueryResultsWidget.cpp Tue Nov 13 17:23:53 2007 +0000 @@ -71,6 +71,7 @@ m_resultsLayout->addWidget(metadataLabel,0,8,1,1); m_resultsLayout->setColumnMinimumWidth(9,5); m_resultsLayout->setColumnMinimumWidth(11,5); + m_currentRow++; } @@ -152,6 +153,7 @@ addResultWidget(author,title,uri,0); m_currentRow=m_currentRow+3; rank++; + } addFoot();
--- a/widgets/svwidgets.vcproj Tue Nov 13 11:09:57 2007 +0000 +++ b/widgets/svwidgets.vcproj Tue Nov 13 17:23:53 2007 +0000 @@ -43,7 +43,7 @@ Name="VCCLCompilerTool" AdditionalOptions="-Zm200 -EHsc" Optimization="2" - AdditionalIncludeDirectories=""$(QTDIR)\include\QtCore";"$(QTDIR)\include\QtGui";"$(QTDIR)\include\QtXml";"$(QTDIR)\include\QtNetwork";"$(QTDIR)\include";.;..;..\sv;"$(QTDIR)\include\ActiveQt";tmp_moc;"$(QTDIR)\mkspecs\win32-msvc2005";"$(EASAIER_UTILS_DIR)\vamp-plugin-sdk\vamp-plugin-sdk-1.0";"$(EASAIER_UTILS_DIR)\fftw3\fftw3.1.2"" + AdditionalIncludeDirectories=""$(QTDIR)\include\QtCore";"$(QTDIR)\include\QtGui";"$(QTDIR)\include\QtXml";"$(QTDIR)\include\QtNetwork";"$(QTDIR)\include";.;..;..\sv;"$(QTDIR)\include\ActiveQt";tmp_moc;"$(QTDIR)\mkspecs\win32-msvc2005";"$(EASAIER_UTILS_DIR)\vamp-plugin-sdk\vamp-plugin-sdk-1.0";"$(EASAIER_UTILS_DIR)\fftw3\fftw3.1.2";"$(EASAIER_UTILS_DIR)\SDL-1.2.12\include"" PreprocessorDefinitions="NDEBUG;BUILD_RELEASE;UNICODE;_UNICODE;_WINDOWS;QT_LARGEFILE_SUPPORT;WIN32;HAVE_BZ2;HAVE_PORTAUDIO;HAVE_PORTAUDIO_V18;HAVE_OGGZ;HAVE_FISHSOUND;HAVE_FFTW3F;HAVE_VAMP;HAVE_VAMP_HOSTSDK;HAVE_SNDFILE;HAVE_SAMPLERATE;HAVE_MAD;QT_THREAD_SUPPORT;QT_DLL;QT_NO_DEBUG;QT_XML_LIB;QT_GUI_LIB;QT_CORE_LIB;USE_VC;_USE_MATH_DEFINES" GeneratePreprocessedFile="0" MinimalRebuild="false" @@ -119,7 +119,7 @@ Name="VCCLCompilerTool" AdditionalOptions="-Zm200 -EHsc" Optimization="0" - AdditionalIncludeDirectories=""$(QTDIR)\include\QtCore";"$(QTDIR)\include\QtGui";"$(QTDIR)\include\QtXml";"$(QTDIR)\include\QtNetwork";"$(QTDIR)\include";.;..;..\sv;"$(QTDIR)\include\ActiveQt";tmp_moc;"$(QTDIR)\mkspecs\win32-msvc2005";"$(EASAIER_UTILS_DIR)\vamp-plugin-sdk\vamp-plugin-sdk-1.0";"$(EASAIER_UTILS_DIR)\fftw3\fftw3.1.2"" + AdditionalIncludeDirectories=""$(QTDIR)\include\QtCore";"$(QTDIR)\include\QtGui";"$(QTDIR)\include\QtXml";"$(QTDIR)\include\QtNetwork";"$(QTDIR)\include";.;..;..\sv;"$(QTDIR)\include\ActiveQt";tmp_moc;"$(QTDIR)\mkspecs\win32-msvc2005";"$(EASAIER_UTILS_DIR)\vamp-plugin-sdk\vamp-plugin-sdk-1.0";"$(EASAIER_UTILS_DIR)\fftw3\fftw3.1.2";"$(EASAIER_UTILS_DIR)\SDL-1.2.12\include"" PreprocessorDefinitions="BUILD_DEBUG;UNICODE;_UNICODE;_WINDOWS;QT_LARGEFILE_SUPPORT;WIN32;HAVE_BZ2;HAVE_PORTAUDIO;HAVE_PORTAUDIO_V18;HAVE_OGGZ;HAVE_FISHSOUND;HAVE_FFTW3F;HAVE_VAMP;HAVE_VAMP_HOSTSDK;HAVE_SNDFILE;HAVE_SAMPLERATE;HAVE_MAD;QT_THREAD_SUPPORT;QT_DLL;QT_XML_LIB;QT_GUI_LIB;QT_NETWORK_LIB;QT_CORE_LIB;USE_VC;_USE_MATH_DEFINES" GeneratePreprocessedFile="0" MinimalRebuild="false"