/********************************************************************** Audacity: A Digital Audio Editor FileFormats.h Dominic Mazzoni **********************************************************************/ #include #include #include #include "Audacity.h" #include "sndfile.h" // // enumerating headers // /** @brief Get the number of container formats supported by libsndfile * * Uses SFC_GET_FORMAT_MAJOR_COUNT in sf_command interface */ int sf_num_headers(); /** @brief Get the name of a container format from libsndfile * * Uses SFC_GET_FORMAT_MAJOR in the sf_command() interface. Resulting C string * from libsndfile is converted to a wxString * @param format_num The libsndfile format number for the container format * required */ wxString sf_header_index_name(int format_num); unsigned int sf_header_index_to_type(int format_num); // // enumerating encodings // /** @brief Get the number of data encodings libsndfile supports (in any * container or none */ int sf_num_encodings(); /** @brief Get the string name of the data encoding of the requested format * * uses SFC_GET_FORMAT_SUBTYPE */ wxString sf_encoding_index_name(int encoding_num); unsigned int sf_encoding_index_to_subtype(int encoding_num); // // getting info about an actual SF format // /** @brief Get the string name of the specified container format * * AND format with SF_FORMAT_TYPEMASK to get only the container format and * then use SFC_GET_FORMAT_INFO to get the description * @param format the libsndfile format to get the name for (only the container * part is used) */ wxString sf_header_name(int format); /** @brief Get an abbreviated form of the string name of the specified format * * Do sf_header_name() then truncate the string at the first space in the name * to get just the first word of the format name. * @param format the libsndfile format to get the name for (only the container * part is used) */ wxString sf_header_shortname(int format); /** @brief Get the most common file extension for the given format * * AND the given format with SF_FORMAT_TYPEMASK to get just the container * format, then retreive the most common extension using SFC_GET_FORMAT_INFO. * @param format the libsndfile format to get the name for (only the container * part is used) */ wxString sf_header_extension(int format); /** @brief Get the string name of the specified data encoding * * AND encoding_num with SF_FORMAT_SUBMASK to get only the data encoding and * then use SFC_GET_FORMAT_INFO to get the description * @param encoding_num the libsndfile encoding to get the name for (only the * data encoding is used) */ wxString sf_encoding_name(int encoding_num); // // simple formats // int sf_num_simple_formats(); SF_FORMAT_INFO *sf_simple_format(int i); // // other utility functions // bool sf_subtype_more_than_16_bits(unsigned int format); bool sf_subtype_is_integer(unsigned int format); wxArrayString sf_get_all_extensions(); // // Mac OS 4-char type // #ifdef __WXMAC__ # ifdef __UNIX__ # include # else # include # endif OSType sf_header_mactype(int format); #endif // Indentation settings for Vim and Emacs and unique identifier for Arch, a // version control system. Please do not modify past this point. // // Local Variables: // c-basic-offset: 3 // indent-tabs-mode: nil // End: // // vim: et sts=3 sw=3 // arch-tag: 3c08a99b-ab07-4f87-bd07-e111a93b7a26