| 
									
										
										
										
											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; | 
					
						
							|  |  |  | class PluginGUI; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class PluginInterface { | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2015-09-30 06:57:40 +02:00
										 |  |  | 	struct SampleSourceDevice | 
					
						
							|  |  |  | 	{ | 
					
						
							| 
									
										
										
										
											2014-05-18 16:52:39 +01:00
										 |  |  | 		QString displayedName; | 
					
						
							| 
									
										
										
										
											2015-09-30 06:57:40 +02:00
										 |  |  | 		QString id; | 
					
						
							|  |  |  | 		QString serial; | 
					
						
							|  |  |  | 		int sequence; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		SampleSourceDevice(const QString& _displayedName, | 
					
						
							|  |  |  | 				const QString& _id, | 
					
						
							|  |  |  | 				const QString& _serial, | 
					
						
							|  |  |  | 				int _sequence) : | 
					
						
							| 
									
										
										
										
											2014-05-18 16:52:39 +01:00
										 |  |  | 			displayedName(_displayedName), | 
					
						
							| 
									
										
										
										
											2015-09-30 06:57:40 +02:00
										 |  |  | 			id(_id), | 
					
						
							|  |  |  | 			serial(_serial), | 
					
						
							|  |  |  | 			sequence(_sequence) | 
					
						
							| 
									
										
										
										
											2014-05-18 16:52:39 +01:00
										 |  |  | 		{ } | 
					
						
							|  |  |  | 	}; | 
					
						
							|  |  |  | 	typedef QList<SampleSourceDevice> SampleSourceDevices; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	virtual ~PluginInterface() { }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	virtual const PluginDescriptor& getPluginDescriptor() const = 0; | 
					
						
							|  |  |  | 	virtual void initPlugin(PluginAPI* pluginAPI) = 0; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-09-30 06:57:40 +02:00
										 |  |  | 	virtual PluginGUI* createChannel(const QString& channelName) { return 0; } | 
					
						
							| 
									
										
										
										
											2014-05-18 16:52:39 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	virtual SampleSourceDevices enumSampleSources() { return SampleSourceDevices(); } | 
					
						
							| 
									
										
										
										
											2015-09-30 08:55:58 +02:00
										 |  |  | 	virtual PluginGUI* createSampleSourcePluginGUI(const QString& sourceId) { return 0; } | 
					
						
							| 
									
										
										
										
											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
 |