mirror of
				https://github.com/f4exb/sdrangel.git
				synced 2025-10-31 13:00:26 -04:00 
			
		
		
		
	SigMFFileSink: give .sigmf-meta extension to provided file name automatically.
This commit is contained in:
		
							parent
							
								
									b865d995a4
								
							
						
					
					
						commit
						d9d1bfff7e
					
				| @ -10,6 +10,9 @@ As per SigMF specifications two files are created in fact. | ||||
|   - One with `.sigmf-meta` extension contains meta data and details to find the different captures in the data file blob. It is written in JSON format and is human readable. You can refer to SigMF documentation in the link at top to read about the details. | ||||
|   - Another with `.sigmf-data` contains the IQ data as a blob indexed by structures in the `.sigmf-meta` file. Thus to the SigMF file reader data appears as a sequence of captures having idependent start time and length, center frequency and with SDRangel specific extensions independent sample rates. | ||||
| 
 | ||||
| If a filename is given without `.sigmf-meta` extension then the `.sigmf-meta` extension is appended automatically. | ||||
| If a filename is given with an extension different of `.sigmf-meta` then the extension is replaced by `.sigmf-meta` automatically. | ||||
| 
 | ||||
| It adds a dependency to the [libsigmf library](https://github.com/f4exb/libsigmf) more specifically the `f4exb` fork that supports `multirecordings` and `sdrangel` extensions. | ||||
| 
 | ||||
| <h2>Interface</h2> | ||||
|  | ||||
| @ -237,10 +237,28 @@ void SigMFFileSinkSink::applySettings(const SigMFFileSinkSettings& settings, boo | ||||
|         << "m_fileRecordName: " << settings.m_fileRecordName | ||||
|         << "force: " << force; | ||||
| 
 | ||||
|     QString fileRecordName = settings.m_fileRecordName; | ||||
| 
 | ||||
|     if ((settings.m_fileRecordName != m_settings.m_fileRecordName) || force) | ||||
|     { | ||||
|         QStringList dotBreakout = settings.m_fileRecordName.split(QLatin1Char('.')); | ||||
| 
 | ||||
|         if (dotBreakout.size() > 1) { | ||||
|             QString extension = dotBreakout.last(); | ||||
| 
 | ||||
|             if (extension != "sigmf-meta") { | ||||
|                 dotBreakout.last() = "sigmf-meta"; | ||||
|             } | ||||
|         } | ||||
|         else | ||||
|         { | ||||
|             dotBreakout.append("sigmf-meta"); | ||||
|         } | ||||
| 
 | ||||
|         fileRecordName = dotBreakout.join(QLatin1Char('.')); | ||||
| 
 | ||||
|         QString fileBase; | ||||
|         FileRecordInterface::RecordType recordType = FileRecordInterface::guessTypeFromFileName(settings.m_fileRecordName, fileBase); | ||||
|         FileRecordInterface::RecordType recordType = FileRecordInterface::guessTypeFromFileName(fileRecordName, fileBase); | ||||
| 
 | ||||
|         if (recordType == FileRecordInterface::RecordTypeSigMF) | ||||
|         { | ||||
| @ -266,6 +284,7 @@ void SigMFFileSinkSink::applySettings(const SigMFFileSinkSettings& settings, boo | ||||
|     } | ||||
| 
 | ||||
|     m_settings = settings; | ||||
|     m_settings.m_fileRecordName = fileRecordName; | ||||
| } | ||||
| 
 | ||||
| void SigMFFileSinkSink::squelchRecording(bool squelchOpen) | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user