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="&quot;$(QTDIR)\include\QtCore&quot;;&quot;$(QTDIR)\include\QtGui&quot;;&quot;$(QTDIR)\include\QtXml&quot;;&quot;$(QTDIR)\include\QtNetwork&quot;;&quot;$(QTDIR)\include&quot;;.;..;..\sv;&quot;$(QTDIR)\include\ActiveQt&quot;;tmp_moc;&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot;;&quot;$(EASAIER_UTILS_DIR)\vamp-plugin-sdk\vamp-plugin-sdk-1.0&quot;;&quot;$(EASAIER_UTILS_DIR)\fftw3\fftw3.1.2&quot;"
+				AdditionalIncludeDirectories="&quot;$(QTDIR)\include\QtCore&quot;;&quot;$(QTDIR)\include\QtGui&quot;;&quot;$(QTDIR)\include\QtXml&quot;;&quot;$(QTDIR)\include\QtNetwork&quot;;&quot;$(QTDIR)\include&quot;;.;..;..\sv;&quot;$(QTDIR)\include\ActiveQt&quot;;tmp_moc;&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot;;&quot;$(EASAIER_UTILS_DIR)\vamp-plugin-sdk\vamp-plugin-sdk-1.0&quot;;&quot;$(EASAIER_UTILS_DIR)\fftw3\fftw3.1.2&quot;;&quot;$(EASAIER_UTILS_DIR)\SDL-1.2.12\include&quot;"
 				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="&quot;$(QTDIR)\include\QtCore&quot;;&quot;$(QTDIR)\include\QtGui&quot;;&quot;$(QTDIR)\include\QtXml&quot;;&quot;$(QTDIR)\include\QtNetwork&quot;;&quot;$(QTDIR)\include&quot;;.;..;..\sv;&quot;$(QTDIR)\include\ActiveQt&quot;;tmp_moc;&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot;;&quot;$(EASAIER_UTILS_DIR)\vamp-plugin-sdk\vamp-plugin-sdk-1.0&quot;;&quot;$(EASAIER_UTILS_DIR)\fftw3\fftw3.1.2&quot;"
+				AdditionalIncludeDirectories="&quot;$(QTDIR)\include\QtCore&quot;;&quot;$(QTDIR)\include\QtGui&quot;;&quot;$(QTDIR)\include\QtXml&quot;;&quot;$(QTDIR)\include\QtNetwork&quot;;&quot;$(QTDIR)\include&quot;;.;..;..\sv;&quot;$(QTDIR)\include\ActiveQt&quot;;tmp_moc;&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot;;&quot;$(EASAIER_UTILS_DIR)\vamp-plugin-sdk\vamp-plugin-sdk-1.0&quot;;&quot;$(EASAIER_UTILS_DIR)\fftw3\fftw3.1.2&quot;;&quot;$(EASAIER_UTILS_DIR)\SDL-1.2.12\include&quot;"
 				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"