From 474f8bc37623f48f7e69dff57aee233c99f6d07c Mon Sep 17 00:00:00 2001 From: Sakari Bergen Date: Mon, 29 Sep 2008 10:02:35 +0000 Subject: Made Export format compatibility checking a bit more robust git-svn-id: svn://localhost/ardour2/branches/3.0@3829 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/ardour/export_formats.cc | 42 ++++++++++++++++++++---------------------- 1 file changed, 20 insertions(+), 22 deletions(-) (limited to 'libs/ardour/export_formats.cc') diff --git a/libs/ardour/export_formats.cc b/libs/ardour/export_formats.cc index f3c8f7197c..9e77bb2f1d 100644 --- a/libs/ardour/export_formats.cc +++ b/libs/ardour/export_formats.cc @@ -234,6 +234,16 @@ ExportFormatLinear::set_compatibility_state (ExportFormatCompatibility const & c ExportFormatOggVorbis::ExportFormatOggVorbis () { + /* Check system compatibility */ + + SF_INFO sf_info; + sf_info.channels = 2; + sf_info.samplerate = SR_44_1; + sf_info.format = F_Ogg | SF_Vorbis; + if (sf_format_check (&sf_info) != SF_TRUE) { + throw ExportFormatIncompatible(); + } + set_name ("Ogg Vorbis"); set_format_id (F_Ogg); sample_formats.insert (SF_Vorbis); @@ -251,17 +261,6 @@ ExportFormatOggVorbis::ExportFormatOggVorbis () set_quality (Q_LossyCompression); } -bool -ExportFormatOggVorbis::check_system_compatibility () -{ - SF_INFO sf_info; - sf_info.channels = 2; - sf_info.samplerate = SR_44_1; - sf_info.format = F_Ogg | SF_Vorbis; - - return (sf_format_check (&sf_info) == SF_TRUE ? true : false); -} - bool ExportFormatOggVorbis::set_compatibility_state (ExportFormatCompatibility const & compatibility) { @@ -275,6 +274,16 @@ ExportFormatOggVorbis::set_compatibility_state (ExportFormatCompatibility const ExportFormatFLAC::ExportFormatFLAC () : HasSampleFormat (sample_formats) { + /* Check system compatibility */ + + SF_INFO sf_info; + sf_info.channels = 2; + sf_info.samplerate = SR_44_1; + sf_info.format = F_FLAC | SF_16; + if (sf_format_check (&sf_info) != SF_TRUE) { + throw ExportFormatIncompatible(); + } + set_name ("FLAC"); set_format_id (F_FLAC); @@ -295,17 +304,6 @@ ExportFormatFLAC::ExportFormatFLAC () : set_quality (Q_LosslessCompression); } -bool -ExportFormatFLAC::check_system_compatibility () -{ - SF_INFO sf_info; - sf_info.channels = 2; - sf_info.samplerate = SR_44_1; - sf_info.format = F_FLAC | SF_16; - - return (sf_format_check (&sf_info) == SF_TRUE ? true : false); -} - bool ExportFormatFLAC::set_compatibility_state (ExportFormatCompatibility const & compatibility) { -- cgit v1.2.3