Audacity 3.2.0
Public Member Functions | List of all members
FLACImportPlugin Class Referencefinal

An ImportPlugin for FLAC data. More...

Inheritance diagram for FLACImportPlugin:
[legend]
Collaboration diagram for FLACImportPlugin:
[legend]

Public Member Functions

 FLACImportPlugin ()
 
 ~FLACImportPlugin ()
 
wxString GetPluginStringID () override
 
TranslatableString GetPluginFormatDescription () override
 
std::unique_ptr< ImportFileHandleOpen (const FilePath &Filename, AudacityProject *) override
 
- Public Member Functions inherited from ImportPlugin
virtual wxString GetPluginStringID ()=0
 
virtual TranslatableString GetPluginFormatDescription ()=0
 
virtual FileExtensions GetSupportedExtensions ()
 
virtual TranslatableString FailureHint () const
 User visible message suggesting what to do when a file type isn't recognized; default empty string. More...
 
bool SupportsExtension (const FileExtension &extension)
 
virtual std::unique_ptr< ImportFileHandleOpen (const FilePath &Filename, AudacityProject *)=0
 
virtual ~ImportPlugin ()
 

Additional Inherited Members

- Protected Member Functions inherited from ImportPlugin
 ImportPlugin (FileExtensions supportedExtensions)
 
- Protected Attributes inherited from ImportPlugin
const FileExtensions mExtensions
 

Detailed Description

An ImportPlugin for FLAC data.

Definition at line 116 of file ImportFLAC.cpp.

Constructor & Destructor Documentation

◆ FLACImportPlugin()

FLACImportPlugin::FLACImportPlugin ( )
inline

Definition at line 119 of file ImportFLAC.cpp.

119 :
120 ImportPlugin( FileExtensions( exts.begin(), exts.end() ) )
121 {
122 }
wxArrayStringEx FileExtensions
Definition: Identifier.h:225
static const auto exts
Definition: ImportFLAC.cpp:48
ImportPlugin(FileExtensions supportedExtensions)

◆ ~FLACImportPlugin()

FLACImportPlugin::~FLACImportPlugin ( )
inline

Definition at line 124 of file ImportFLAC.cpp.

124{ }

Member Function Documentation

◆ GetPluginFormatDescription()

TranslatableString FLACImportPlugin::GetPluginFormatDescription ( )
overridevirtual

Implements ImportPlugin.

Definition at line 281 of file ImportFLAC.cpp.

282{
283 return DESC;
284}
#define DESC
Definition: ImportFLAC.cpp:46

References DESC.

◆ GetPluginStringID()

wxString FLACImportPlugin::GetPluginStringID ( )
inlineoverridevirtual

Implements ImportPlugin.

Definition at line 126 of file ImportFLAC.cpp.

126{ return wxT("libflac"); }
wxT("CloseDown"))

References wxT().

Here is the call graph for this function:

◆ Open()

std::unique_ptr< ImportFileHandle > FLACImportPlugin::Open ( const FilePath Filename,
AudacityProject  
)
overridevirtual

Implements ImportPlugin.

Definition at line 287 of file ImportFLAC.cpp.

289{
290 // First check if it really is a FLAC file
291
292 int cnt;
293 wxFile binaryFile;
294 if (!binaryFile.Open(filename)) {
295 return nullptr; // File not found
296 }
297
298 // FIXME: TRAP_ERR wxFILE ops in FLAC Import could fail.
299 // Seek() return value is not examined, for example.
300#ifdef USE_LIBID3TAG
301 // Skip any ID3 tags that might be present
302 id3_byte_t query[ID3_TAG_QUERYSIZE];
303 cnt = binaryFile.Read(query, sizeof(query));
304 cnt = id3_tag_query(query, cnt);
305 binaryFile.Seek(cnt);
306#endif
307
308 char buf[5];
309 cnt = binaryFile.Read(buf, 4);
310 binaryFile.Close();
311
312 if (cnt == wxInvalidOffset || strncmp(buf, FLAC_HEADER, 4) != 0) {
313 // File is not a FLAC file
314 return nullptr;
315 }
316
317 // Open the file for import
318 auto handle = std::make_unique<FLACImportFileHandle>(filename);
319
320 bool success = handle->Init();
321 if (!success) {
322 return nullptr;
323 }
324
325 // This std::move is needed to "upcast" the pointer type
326 return std::move(handle);
327}
#define FLAC_HEADER
Definition: ImportFLAC.cpp:44

References FLAC_HEADER.


The documentation for this class was generated from the following file: