2014-05-18 16:52:39 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								# ifndef INCLUDE_PLUGININTERFACE_H 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# define INCLUDE_PLUGININTERFACE_H 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  <QtPlugin> 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  <QString> 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								struct  PluginDescriptor  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// general plugin description
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									const  QString  displayedName ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									const  QString  version ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									const  QString  copyright ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									const  QString  website ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									bool  licenseIsGPL ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									const  QString  sourceCodeURL ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								class  PluginAPI ;  
						 
					
						
							
								
									
										
										
										
											2016-10-11 01:17:55 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								class  DeviceSourceAPI ;  
						 
					
						
							
								
									
										
										
										
											2016-10-14 18:47:19 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								class  DeviceSinkAPI ;  
						 
					
						
							
								
									
										
										
										
											2017-09-26 00:22:08 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								class  PluginInstanceGUI ;  
						 
					
						
							
								
									
										
										
										
											2016-05-17 03:41:01 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								class  QWidget ;  
						 
					
						
							
								
									
										
										
										
											2017-09-14 08:49:31 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								class  DeviceSampleSource ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								class  DeviceSampleSink ;  
						 
					
						
							
								
									
										
										
										
											2014-05-18 16:52:39 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								class  PluginInterface  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								public :  
						 
					
						
							
								
									
										
										
										
											2016-10-13 22:23:43 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									struct  SamplingDevice 
							 
						 
					
						
							
								
									
										
										
										
											2015-09-30 06:57:40 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									{ 
							 
						 
					
						
							
								
									
										
										
										
											2014-05-18 16:52:39 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										QString  displayedName ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-12-29 12:41:10 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										QString  hardwareId ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-09-30 06:57:40 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										QString  id ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										QString  serial ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										int  sequence ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-10-13 22:23:43 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										SamplingDevice ( const  QString &  _displayedName , 
							 
						 
					
						
							
								
									
										
										
										
											2016-12-29 12:41:10 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                const  QString &  _hardwareId , 
							 
						 
					
						
							
								
									
										
										
										
											2015-09-30 06:57:40 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												const  QString &  _id , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												const  QString &  _serial , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												int  _sequence )  : 
							 
						 
					
						
							
								
									
										
										
										
											2014-05-18 16:52:39 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											displayedName ( _displayedName ) , 
							 
						 
					
						
							
								
									
										
										
										
											2016-12-29 12:41:10 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											hardwareId ( _hardwareId ) , 
							 
						 
					
						
							
								
									
										
										
										
											2015-09-30 06:57:40 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											id ( _id ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											serial ( _serial ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											sequence ( _sequence ) 
							 
						 
					
						
							
								
									
										
										
										
											2014-05-18 16:52:39 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										{  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-10-13 22:23:43 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									typedef  QList < SamplingDevice >  SamplingDevices ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-05-18 16:52:39 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  ~ PluginInterface ( )  {  } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  const  PluginDescriptor &  getPluginDescriptor ( )  const  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  initPlugin ( PluginAPI *  pluginAPI )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-10-13 23:42:08 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									// channel Rx plugins
 
							 
						 
					
						
							
								
									
										
										
										
											2017-09-26 00:22:08 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  PluginInstanceGUI *  createRxChannel ( const  QString &  channelName  __attribute__ ( ( unused ) ) ,  DeviceSourceAPI  * deviceAPI  __attribute__ ( ( unused ) )  )  {  return  0 ;  } 
							 
						 
					
						
							
								
									
										
										
										
											2014-05-18 16:52:39 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-10-14 18:47:19 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									// channel Tx plugins
 
							 
						 
					
						
							
								
									
										
										
										
											2017-09-26 00:22:08 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  PluginInstanceGUI *  createTxChannel ( const  QString &  channelName  __attribute__ ( ( unused ) ) ,  DeviceSinkAPI  * deviceAPI  __attribute__ ( ( unused ) )  )  {  return  0 ;  } 
							 
						 
					
						
							
								
									
										
										
										
											2016-10-14 18:47:19 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// device source plugins only
 
							 
						 
					
						
							
								
									
										
										
										
											2016-10-13 22:23:43 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  SamplingDevices  enumSampleSources ( )  {  return  SamplingDevices ( ) ;  } 
							 
						 
					
						
							
								
									
										
										
										
											2017-09-26 00:22:08 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  PluginInstanceGUI *  createSampleSourcePluginInstanceGUI ( const  QString &  sourceId  __attribute__ ( ( unused ) ) ,  QWidget  * * widget  __attribute__ ( ( unused ) ) ,  DeviceSourceAPI  * deviceAPI  __attribute__ ( ( unused ) ) )  {  return  0 ;  } 
							 
						 
					
						
							
								
									
										
										
										
											2017-09-14 08:49:31 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  DeviceSampleSource *  createSampleSourcePluginInstanceInput ( const  QString &  sourceId  __attribute__ ( ( unused ) ) ,  DeviceSourceAPI  * deviceAPI  __attribute__ ( ( unused ) ) )  {  return  0 ;  }  // creates the input "core"
 
							 
						 
					
						
							
								
									
										
										
										
											2017-09-26 00:22:08 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  deleteSampleSourcePluginInstanceGUI ( PluginInstanceGUI  * ui ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-09-16 10:45:08 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  deleteSampleSourcePluginInstanceInput ( DeviceSampleSource  * source ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-10-14 18:47:19 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// device sink plugins only
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  SamplingDevices  enumSampleSinks ( )  {  return  SamplingDevices ( ) ;  } 
							 
						 
					
						
							
								
									
										
										
										
											2017-09-26 00:22:08 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  PluginInstanceGUI *  createSampleSinkPluginInstanceGUI ( const  QString &  sinkId  __attribute__ ( ( unused ) ) ,  QWidget  * * widget  __attribute__ ( ( unused ) ) ,  DeviceSinkAPI  * deviceAPI  __attribute__ ( ( unused ) ) )  {  return  0 ;  } 
							 
						 
					
						
							
								
									
										
										
										
											2017-09-14 08:49:31 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    virtual  DeviceSampleSink *  createSampleSinkPluginInstanceOutput ( const  QString &  sinkId  __attribute__ ( ( unused ) ) ,  DeviceSinkAPI  * deviceAPI  __attribute__ ( ( unused ) ) )  {  return  0 ;  }  // creates the output "core"
 
							 
						 
					
						
							
								
									
										
										
										
											2017-09-26 00:22:08 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    virtual  void  deleteSampleSinkPluginInstanceGUI ( PluginInstanceGUI  * ui ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-09-16 11:34:25 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    virtual  void  deleteSampleSinkPluginInstanceOutput ( DeviceSampleSink  * sink ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-05-18 16:52:39 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-10-05 04:47:23 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Q_DECLARE_INTERFACE ( PluginInterface ,  " SDRangel.PluginInterface/0.1 " ) ;  
						 
					
						
							
								
									
										
										
										
											2014-05-18 16:52:39 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# endif  // INCLUDE_PLUGININTERFACE_H