mirror of
				https://github.com/f4exb/sdrangel.git
				synced 2025-10-31 13:00:26 -04:00 
			
		
		
		
	ATV Modulator: added camera details to the GUI
This commit is contained in:
		
							parent
							
								
									2adf6da86d
								
							
						
					
					
						commit
						41fac50526
					
				| @ -624,6 +624,14 @@ void ATVMod::scanCameras() | |||||||
| 			m_cameras.back().m_videoFPS = m_cameras.back().m_camera.get(CV_CAP_PROP_FPS); | 			m_cameras.back().m_videoFPS = m_cameras.back().m_camera.get(CV_CAP_PROP_FPS); | ||||||
| 			m_cameras.back().m_videoWidth = (int) m_cameras.back().m_camera.get(CV_CAP_PROP_FRAME_WIDTH); | 			m_cameras.back().m_videoWidth = (int) m_cameras.back().m_camera.get(CV_CAP_PROP_FRAME_WIDTH); | ||||||
| 			m_cameras.back().m_videoHeight = (int) m_cameras.back().m_camera.get(CV_CAP_PROP_FRAME_HEIGHT); | 			m_cameras.back().m_videoHeight = (int) m_cameras.back().m_camera.get(CV_CAP_PROP_FRAME_HEIGHT); | ||||||
|  | 
 | ||||||
|  | 			m_cameras.back().m_videoFPS = m_cameras.back().m_videoFPS < 0 ? 25.0f : m_cameras.back().m_videoFPS; | ||||||
|  | 
 | ||||||
|  | 			qDebug("ATVMod::scanCameras: [%d] FPS: %f %dx%d", | ||||||
|  | 			        i, | ||||||
|  | 			        m_cameras.back().m_videoFPS, | ||||||
|  | 			        m_cameras.back().m_videoWidth , | ||||||
|  | 			        m_cameras.back().m_videoHeight); | ||||||
| 		} | 		} | ||||||
| 		else | 		else | ||||||
| 		{ | 		{ | ||||||
| @ -634,13 +642,6 @@ void ATVMod::scanCameras() | |||||||
| 	if (m_cameras.size() > 0) | 	if (m_cameras.size() > 0) | ||||||
| 	{ | 	{ | ||||||
| 		m_cameraIndex = 0; | 		m_cameraIndex = 0; | ||||||
| 		MsgReportCameraData *report; |  | ||||||
|         report = MsgReportCameraData::create( |  | ||||||
|         		m_cameras[0].m_cameraNumber, |  | ||||||
| 				m_cameras[0].m_videoFPS, |  | ||||||
| 				m_cameras[0].m_videoWidth, |  | ||||||
| 				m_cameras[0].m_videoHeight); |  | ||||||
|         getOutputMessageQueue()->push(report); |  | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -652,3 +653,21 @@ void ATVMod::releaseCameras() | |||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | void ATVMod::getCameraNumbers(std::vector<int>& numbers) | ||||||
|  | { | ||||||
|  |     for (std::vector<ATVCamera>::iterator it = m_cameras.begin(); it != m_cameras.end(); ++it) { | ||||||
|  |         numbers.push_back(it->m_cameraNumber); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     if (m_cameras.size() > 0) | ||||||
|  |     { | ||||||
|  |         m_cameraIndex = 0; | ||||||
|  |         MsgReportCameraData *report; | ||||||
|  |         report = MsgReportCameraData::create( | ||||||
|  |                 m_cameras[0].m_cameraNumber, | ||||||
|  |                 m_cameras[0].m_videoFPS, | ||||||
|  |                 m_cameras[0].m_videoWidth, | ||||||
|  |                 m_cameras[0].m_videoHeight); | ||||||
|  |         getOutputMessageQueue()->push(report); | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | |||||||
| @ -214,7 +214,7 @@ public: | |||||||
| 
 | 
 | ||||||
|     public: |     public: | ||||||
|         int getdeviceNumber() const { return m_deviceNumber; } |         int getdeviceNumber() const { return m_deviceNumber; } | ||||||
|         int getFPS() const { return m_fps; } |         float getFPS() const { return m_fps; } | ||||||
|         int getWidth() const { return m_width; } |         int getWidth() const { return m_width; } | ||||||
|         int getHeight() const { return m_height; } |         int getHeight() const { return m_height; } | ||||||
| 
 | 
 | ||||||
| @ -233,13 +233,13 @@ public: | |||||||
| 
 | 
 | ||||||
|     protected: |     protected: | ||||||
|         int m_deviceNumber; |         int m_deviceNumber; | ||||||
|         int m_fps; |         float m_fps; | ||||||
|         int m_width; |         int m_width; | ||||||
|         int m_height; |         int m_height; | ||||||
| 
 | 
 | ||||||
|         MsgReportCameraData( |         MsgReportCameraData( | ||||||
|         		int deviceNumber, |         		int deviceNumber, | ||||||
|                 int fps, |         		float fps, | ||||||
| 				int width, | 				int width, | ||||||
| 				int height) : | 				int height) : | ||||||
|             Message(), |             Message(), | ||||||
| @ -271,11 +271,7 @@ public: | |||||||
| 
 | 
 | ||||||
|     Real getMagSq() const { return m_movingAverage.average(); } |     Real getMagSq() const { return m_movingAverage.average(); } | ||||||
| 
 | 
 | ||||||
|     void getCameraNumbers(std::vector<int>& numbers) { |     void getCameraNumbers(std::vector<int>& numbers); | ||||||
|     	for (std::vector<ATVCamera>::iterator it = m_cameras.begin(); it != m_cameras.end(); ++it) { |  | ||||||
|     		numbers.push_back(it->m_cameraNumber); |  | ||||||
|     	} |  | ||||||
|     } |  | ||||||
| 
 | 
 | ||||||
|     static int getSampleRateUnits(ATVStd std); |     static int getSampleRateUnits(ATVStd std); | ||||||
| 
 | 
 | ||||||
| @ -349,7 +345,7 @@ private: | |||||||
|         { } |         { } | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     typedef struct ATVCamera |     struct ATVCamera | ||||||
|     { |     { | ||||||
|     	cv::VideoCapture m_camera;    //!< camera object
 |     	cv::VideoCapture m_camera;    //!< camera object
 | ||||||
|         cv::Mat m_videoframeOriginal; //!< camera non resized image
 |         cv::Mat m_videoframeOriginal; //!< camera non resized image
 | ||||||
| @ -364,7 +360,7 @@ private: | |||||||
| 
 | 
 | ||||||
|         ATVCamera() : |         ATVCamera() : | ||||||
|         	m_cameraNumber(-1), |         	m_cameraNumber(-1), | ||||||
| 			m_videoFPS(25), | 			m_videoFPS(25.0f), | ||||||
|         	m_videoWidth(1), |         	m_videoWidth(1), | ||||||
| 			m_videoHeight(1), | 			m_videoHeight(1), | ||||||
| 			m_videoFx(1.0f), | 			m_videoFx(1.0f), | ||||||
|  | |||||||
| @ -164,7 +164,10 @@ bool ATVModGUI::handleMessage(const Message& message) | |||||||
|     } |     } | ||||||
|     else if (ATVMod::MsgReportCameraData::match(message)) |     else if (ATVMod::MsgReportCameraData::match(message)) | ||||||
|     { |     { | ||||||
|     	// TODO
 |         ATVMod::MsgReportCameraData& rpt = (ATVMod::MsgReportCameraData&) message; | ||||||
|  |         ui->cameraDeviceNumber->setText(tr("#%1").arg(rpt.getdeviceNumber())); | ||||||
|  |         ui->camerFPS->setText(tr("%1 FPS").arg(rpt.getFPS(), 0, 'f', 2)); | ||||||
|  |         ui->cameraImageSize->setText(tr("%1x%2").arg(rpt.getWidth()).arg(rpt.getHeight())); | ||||||
|     	return true; |     	return true; | ||||||
|     } |     } | ||||||
|     else |     else | ||||||
| @ -270,7 +273,7 @@ void ATVModGUI::on_playLoop_toggled(bool checked) | |||||||
|     applySettings(); |     applySettings(); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void ATVModGUI::on_play_toggled(bool checked) | void ATVModGUI::on_playVideo_toggled(bool checked) | ||||||
| { | { | ||||||
|     ui->navTimeSlider->setEnabled(!checked); |     ui->navTimeSlider->setEnabled(!checked); | ||||||
|     m_enableNavTime = !checked; |     m_enableNavTime = !checked; | ||||||
| @ -406,7 +409,7 @@ void ATVModGUI::applySettings() | |||||||
| 			ui->uniformLevel->value() / 100.0f, | 			ui->uniformLevel->value() / 100.0f, | ||||||
| 			(ATVMod::ATVModulation) ui->modulation->currentIndex(), | 			(ATVMod::ATVModulation) ui->modulation->currentIndex(), | ||||||
| 			ui->playLoop->isChecked(), | 			ui->playLoop->isChecked(), | ||||||
| 			ui->play->isChecked(), | 			ui->playVideo->isChecked(), | ||||||
| 			ui->channelMute->isChecked()); | 			ui->channelMute->isChecked()); | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  | |||||||
| @ -68,7 +68,7 @@ private slots: | |||||||
|     void on_imageFileDialog_clicked(bool checked); |     void on_imageFileDialog_clicked(bool checked); | ||||||
|     void on_videoFileDialog_clicked(bool checked); |     void on_videoFileDialog_clicked(bool checked); | ||||||
| 
 | 
 | ||||||
|     void on_play_toggled(bool checked); |     void on_playVideo_toggled(bool checked); | ||||||
|     void on_playLoop_toggled(bool checked); |     void on_playLoop_toggled(bool checked); | ||||||
|     void on_navTimeSlider_valueChanged(int value); |     void on_navTimeSlider_valueChanged(int value); | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -6,7 +6,7 @@ | |||||||
|    <rect> |    <rect> | ||||||
|     <x>0</x> |     <x>0</x> | ||||||
|     <y>0</y> |     <y>0</y> | ||||||
|     <width>342</width> |     <width>386</width> | ||||||
|     <height>364</height> |     <height>364</height> | ||||||
|    </rect> |    </rect> | ||||||
|   </property> |   </property> | ||||||
| @ -39,13 +39,13 @@ | |||||||
|     <rect> |     <rect> | ||||||
|      <x>10</x> |      <x>10</x> | ||||||
|      <y>10</y> |      <y>10</y> | ||||||
|      <width>320</width> |      <width>360</width> | ||||||
|      <height>341</height> |      <height>341</height> | ||||||
|     </rect> |     </rect> | ||||||
|    </property> |    </property> | ||||||
|    <property name="minimumSize"> |    <property name="minimumSize"> | ||||||
|     <size> |     <size> | ||||||
|      <width>280</width> |      <width>360</width> | ||||||
|      <height>0</height> |      <height>0</height> | ||||||
|     </size> |     </size> | ||||||
|    </property> |    </property> | ||||||
| @ -536,7 +536,7 @@ | |||||||
|        </widget> |        </widget> | ||||||
|       </item> |       </item> | ||||||
|       <item> |       <item> | ||||||
|        <widget class="ButtonSwitch" name="play"> |        <widget class="ButtonSwitch" name="playVideo"> | ||||||
|         <property name="toolTip"> |         <property name="toolTip"> | ||||||
|          <string>Record file play/pause</string> |          <string>Record file play/pause</string> | ||||||
|         </property> |         </property> | ||||||
| @ -656,13 +656,100 @@ | |||||||
|      <layout class="QHBoxLayout" name="camLayout"> |      <layout class="QHBoxLayout" name="camLayout"> | ||||||
|       <item> |       <item> | ||||||
|        <widget class="QLabel" name="camLabel"> |        <widget class="QLabel" name="camLabel"> | ||||||
|  |         <property name="minimumSize"> | ||||||
|  |          <size> | ||||||
|  |           <width>24</width> | ||||||
|  |           <height>24</height> | ||||||
|  |          </size> | ||||||
|  |         </property> | ||||||
|         <property name="text"> |         <property name="text"> | ||||||
|          <string>Cam</string> |          <string/> | ||||||
|  |         </property> | ||||||
|  |         <property name="pixmap"> | ||||||
|  |          <pixmap resource="../../../sdrbase/resources/res.qrc">:/camera.png</pixmap> | ||||||
|         </property> |         </property> | ||||||
|        </widget> |        </widget> | ||||||
|       </item> |       </item> | ||||||
|       <item> |       <item> | ||||||
|        <widget class="QComboBox" name="camSelect"/> |        <widget class="ButtonSwitch" name="playCamera"> | ||||||
|  |         <property name="minimumSize"> | ||||||
|  |          <size> | ||||||
|  |           <width>24</width> | ||||||
|  |           <height>24</height> | ||||||
|  |          </size> | ||||||
|  |         </property> | ||||||
|  |         <property name="text"> | ||||||
|  |          <string/> | ||||||
|  |         </property> | ||||||
|  |         <property name="icon"> | ||||||
|  |          <iconset resource="../../../sdrbase/resources/res.qrc"> | ||||||
|  |           <normaloff>:/play.png</normaloff> | ||||||
|  |           <normalon>:/pause.png</normalon> | ||||||
|  |           <disabledoff>:/play.png</disabledoff> | ||||||
|  |           <disabledon>:/play.png</disabledon>:/play.png</iconset> | ||||||
|  |         </property> | ||||||
|  |        </widget> | ||||||
|  |       </item> | ||||||
|  |       <item> | ||||||
|  |        <widget class="QComboBox" name="camSelect"> | ||||||
|  |         <property name="maximumSize"> | ||||||
|  |          <size> | ||||||
|  |           <width>50</width> | ||||||
|  |           <height>16777215</height> | ||||||
|  |          </size> | ||||||
|  |         </property> | ||||||
|  |         <property name="toolTip"> | ||||||
|  |          <string>Select camera</string> | ||||||
|  |         </property> | ||||||
|  |        </widget> | ||||||
|  |       </item> | ||||||
|  |       <item> | ||||||
|  |        <widget class="QLabel" name="cameraDeviceNumber"> | ||||||
|  |         <property name="minimumSize"> | ||||||
|  |          <size> | ||||||
|  |           <width>24</width> | ||||||
|  |           <height>0</height> | ||||||
|  |          </size> | ||||||
|  |         </property> | ||||||
|  |         <property name="toolTip"> | ||||||
|  |          <string>camera device number</string> | ||||||
|  |         </property> | ||||||
|  |         <property name="text"> | ||||||
|  |          <string>--</string> | ||||||
|  |         </property> | ||||||
|  |        </widget> | ||||||
|  |       </item> | ||||||
|  |       <item> | ||||||
|  |        <widget class="QLabel" name="camerFPS"> | ||||||
|  |         <property name="minimumSize"> | ||||||
|  |          <size> | ||||||
|  |           <width>66</width> | ||||||
|  |           <height>0</height> | ||||||
|  |          </size> | ||||||
|  |         </property> | ||||||
|  |         <property name="toolTip"> | ||||||
|  |          <string>camera FPS</string> | ||||||
|  |         </property> | ||||||
|  |         <property name="text"> | ||||||
|  |          <string>--</string> | ||||||
|  |         </property> | ||||||
|  |        </widget> | ||||||
|  |       </item> | ||||||
|  |       <item> | ||||||
|  |        <widget class="QLabel" name="cameraImageSize"> | ||||||
|  |         <property name="minimumSize"> | ||||||
|  |          <size> | ||||||
|  |           <width>70</width> | ||||||
|  |           <height>0</height> | ||||||
|  |          </size> | ||||||
|  |         </property> | ||||||
|  |         <property name="toolTip"> | ||||||
|  |          <string>camera image size</string> | ||||||
|  |         </property> | ||||||
|  |         <property name="text"> | ||||||
|  |          <string>--</string> | ||||||
|  |         </property> | ||||||
|  |        </widget> | ||||||
|       </item> |       </item> | ||||||
|       <item> |       <item> | ||||||
|        <spacer name="horizontalSpacer_4"> |        <spacer name="horizontalSpacer_4"> | ||||||
|  | |||||||
							
								
								
									
										
											BIN
										
									
								
								sdrbase/resources/camera.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								sdrbase/resources/camera.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 823 B | 
| @ -74,5 +74,6 @@ | |||||||
|         <file>film_reel.png</file> |         <file>film_reel.png</file> | ||||||
|         <file>film.png</file> |         <file>film.png</file> | ||||||
|         <file>picture.png</file> |         <file>picture.png</file> | ||||||
|  |         <file>camera.png</file> | ||||||
|     </qresource> |     </qresource> | ||||||
| </RCC> | </RCC> | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user