Документация
This commit is contained in:
parent
d6c1e42a26
commit
cca2ab2f50
@ -1,3 +1,8 @@
|
|||||||
|
/**
|
||||||
|
* @file current_executable.hpp
|
||||||
|
* @brief Параметры исполняемового файла
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef MYX_FILESYSTEM_CURRENT_EXECUTABLE_HPP_
|
#ifndef MYX_FILESYSTEM_CURRENT_EXECUTABLE_HPP_
|
||||||
#define MYX_FILESYSTEM_CURRENT_EXECUTABLE_HPP_
|
#define MYX_FILESYSTEM_CURRENT_EXECUTABLE_HPP_
|
||||||
|
|
||||||
@ -11,17 +16,34 @@ namespace filesystem {
|
|||||||
|
|
||||||
class CurrentExecutable
|
class CurrentExecutable
|
||||||
{
|
{
|
||||||
|
/// Путь к символической ссылке, указывающей на текущий исполняемый файл
|
||||||
QFileInfo m_procFilePath;
|
QFileInfo m_procFilePath;
|
||||||
|
/// Канонический путь к текущему исполняемому файлу
|
||||||
QFileInfo m_canonicalFilePath;
|
QFileInfo m_canonicalFilePath;
|
||||||
QDir m_canonicalPath;
|
/// Канонический путь к каталогу с текущим исполняемым файлом
|
||||||
QString m_fileName;
|
QDir m_canonicalPath;
|
||||||
|
/// Имя текущего исполняемого файла
|
||||||
|
QString m_fileName;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
/**
|
||||||
|
* @brief Конструктор, собирающий информацию о текущем исполняемом файле.
|
||||||
|
* Иницализируются все внутренние переменные.
|
||||||
|
*/
|
||||||
CurrentExecutable();
|
CurrentExecutable();
|
||||||
|
/**
|
||||||
|
* @brief Канонический путь к текущему исполняемому файлу
|
||||||
|
*/
|
||||||
QFileInfo canonicalFilePath() const;
|
QFileInfo canonicalFilePath() const;
|
||||||
|
/**
|
||||||
|
* @brief Канонический путь к каталогу с текущим исполняемым файлом
|
||||||
|
*/
|
||||||
QDir canonicalPath() const;
|
QDir canonicalPath() const;
|
||||||
|
/**
|
||||||
|
* @brief Имя текущего исполняемого файла
|
||||||
|
*/
|
||||||
QString fileName() const;
|
QString fileName() const;
|
||||||
};
|
}; // class CurrentExecutable
|
||||||
|
|
||||||
} // namespace filesystem
|
} // namespace filesystem
|
||||||
|
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
/**
|
||||||
|
* @file paths.hpp
|
||||||
|
* @brief Стандартные пути к каталогам и файлам
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef MYX_FILESYSTEM_PATHS_HPP_
|
#ifndef MYX_FILESYSTEM_PATHS_HPP_
|
||||||
#define MYX_FILESYSTEM_PATHS_HPP_
|
#define MYX_FILESYSTEM_PATHS_HPP_
|
||||||
|
|
||||||
@ -13,46 +18,136 @@ namespace filesystem {
|
|||||||
|
|
||||||
class Paths
|
class Paths
|
||||||
{
|
{
|
||||||
QDir m_prefixDirectory;
|
/// Путь к базовому каталогу
|
||||||
QDir m_binaryDirectory;
|
QDir m_prefixDirectory;
|
||||||
QDir m_configDirectory;
|
/// Путь к каталогу с исполняемым файлом
|
||||||
QDir m_cacheDirectory;
|
QDir m_binaryDirectory;
|
||||||
QDir m_tempDirectory;
|
/// Путь к каталогу с изменяемыми файлами
|
||||||
QDir m_dataDirectory;
|
QDir m_cacheDirectory;
|
||||||
QDir m_logDirectory;
|
/// Путь к каталогу с временными файлами
|
||||||
QDir m_homeDirectory;
|
QDir m_tempDirectory;
|
||||||
QString m_configFileExtension;
|
/// Путь к каталогу с неизменяемыми файлами
|
||||||
QString m_configFileName;
|
QDir m_dataDirectory;
|
||||||
|
/// Путь к каталогу с журналами работы
|
||||||
|
QDir m_logDirectory;
|
||||||
|
/// Путь к домашнему каталогу текущего пользователя
|
||||||
|
QDir m_homeDirectory;
|
||||||
|
/// Путь к каталогу с файлами настройки
|
||||||
|
QDir m_configDirectory;
|
||||||
|
/// Полный путь к файлу настройки
|
||||||
QFileInfo m_configFilePath;
|
QFileInfo m_configFilePath;
|
||||||
|
/// Имя файла настройки
|
||||||
|
QString m_configFileName;
|
||||||
|
/// Расширение для файла настройки
|
||||||
|
QString m_configFileExtension;
|
||||||
|
|
||||||
|
/// Параметры текущего исполняемого файла
|
||||||
CurrentExecutable m_currentExecutable;
|
CurrentExecutable m_currentExecutable;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
/**
|
||||||
|
* @brief Конструктор
|
||||||
|
* @param configFileExtension Расширение для файла настройки
|
||||||
|
*/
|
||||||
Paths( const QString& configFileExtension = "conf" );
|
Paths( const QString& configFileExtension = "conf" );
|
||||||
|
/**
|
||||||
|
* @brief Получение пути к базовому каталогу
|
||||||
|
*/
|
||||||
QDir prefixDirectory() const;
|
QDir prefixDirectory() const;
|
||||||
|
/**
|
||||||
|
* @brief Установка пути к базовому каталогу
|
||||||
|
*/
|
||||||
void setPrefixDirectory( const QString& prefixDirectory );
|
void setPrefixDirectory( const QString& prefixDirectory );
|
||||||
|
/**
|
||||||
|
* @brief Получение пути к каталогу с исполняемым файлом
|
||||||
|
*/
|
||||||
QDir binaryDirectory() const;
|
QDir binaryDirectory() const;
|
||||||
|
/**
|
||||||
|
* @brief Установка пути к каталогу с исполняемым файлом
|
||||||
|
*/
|
||||||
void setBinaryDirectory( const QString& binaryDirectory );
|
void setBinaryDirectory( const QString& binaryDirectory );
|
||||||
|
/**
|
||||||
|
* @brief Получение пути к каталогу с файлами настройки
|
||||||
|
*/
|
||||||
QDir configDirectory() const;
|
QDir configDirectory() const;
|
||||||
|
/**
|
||||||
|
* @brief Установка пути к каталогу с файлами настройки
|
||||||
|
*/
|
||||||
void setConfigDirectory( const QString& configDirectory );
|
void setConfigDirectory( const QString& configDirectory );
|
||||||
|
/**
|
||||||
|
* @brief Получение пути к каталогу с изменяемыми файлами
|
||||||
|
*/
|
||||||
QDir cacheDirectory() const;
|
QDir cacheDirectory() const;
|
||||||
|
/**
|
||||||
|
* @brief Установка пути к каталогу с изменяемыми файлами
|
||||||
|
*/
|
||||||
void setCacheDirectory( const QString& cacheDirectory );
|
void setCacheDirectory( const QString& cacheDirectory );
|
||||||
|
/**
|
||||||
|
* @brief Получение пути к каталогу с временными файлами
|
||||||
|
*/
|
||||||
QDir tempDirectory() const;
|
QDir tempDirectory() const;
|
||||||
|
/**
|
||||||
|
* @brief Установка пути к каталогу с временными файлами
|
||||||
|
*/
|
||||||
void setTempDirectory( const QString& tempDirectory );
|
void setTempDirectory( const QString& tempDirectory );
|
||||||
|
/**
|
||||||
|
* @brief Получение пути к каталогу с неизменяемыми файлами
|
||||||
|
*/
|
||||||
QDir dataDirectory() const;
|
QDir dataDirectory() const;
|
||||||
|
/**
|
||||||
|
* @brief Установка пути к каталогу с неизменяемыми файлами
|
||||||
|
*/
|
||||||
void setDataDirectory( const QString& dataDirectory );
|
void setDataDirectory( const QString& dataDirectory );
|
||||||
|
/**
|
||||||
|
* @brief Получение пути к каталогу с журналами работы
|
||||||
|
*/
|
||||||
QDir logDirectory() const;
|
QDir logDirectory() const;
|
||||||
|
/**
|
||||||
|
* @brief Установка пути к каталогу с журналами работы
|
||||||
|
*/
|
||||||
void setLogDirectory( const QString& logDirectory );
|
void setLogDirectory( const QString& logDirectory );
|
||||||
|
/**
|
||||||
|
* @brief Имя исполняемого файла
|
||||||
|
*/
|
||||||
QString executableFileName() const;
|
QString executableFileName() const;
|
||||||
QString configFileName() const;
|
/**
|
||||||
void setConfigFileName( const QString& configFileName );
|
* @brief Полный путь к исполняемому файлу
|
||||||
|
*/
|
||||||
QFileInfo executableFilePath() const;
|
QFileInfo executableFilePath() const;
|
||||||
|
/**
|
||||||
|
* @brief Имя файла настройки
|
||||||
|
*/
|
||||||
|
QString configFileName() const;
|
||||||
|
/**
|
||||||
|
* @brief Установка имени файла настройки
|
||||||
|
*/
|
||||||
|
void setConfigFileName( const QString& configFileName );
|
||||||
|
/**
|
||||||
|
* @brief Полный путь к файлу настройки
|
||||||
|
*/
|
||||||
QFileInfo configFilePath() const;
|
QFileInfo configFilePath() const;
|
||||||
|
/**
|
||||||
|
* @brief Установка полного пути к файлу настройки
|
||||||
|
*/
|
||||||
void setConfigFilePath( const QFileInfo& configFilePath );
|
void setConfigFilePath( const QFileInfo& configFilePath );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Обновление путей с учётом расположения исполняемого файла
|
||||||
|
*/
|
||||||
bool updatePaths();
|
bool updatePaths();
|
||||||
|
/**
|
||||||
|
* @brief Создание стандартных каталогов
|
||||||
|
*/
|
||||||
bool makeDefaultDirectories();
|
bool makeDefaultDirectories();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Поиск существующего файла настойки.
|
||||||
|
* Поиск выполняется до тех пор пока не будет найден файл в следующем порядке:
|
||||||
|
* 1. Имя файла, указанное в качестве параметра функции
|
||||||
|
* 2. Имя файла, заданное переменной окружения вида PORJECT_NAME_CONFIG
|
||||||
|
* 3. Имя файла, полученное из внутренней переменной класса
|
||||||
|
* Если файл настройки не будет найден, то будет возвращена пустая строка
|
||||||
|
*/
|
||||||
QString findConfigFile( const QString& defaultConfigFile = "" );
|
QString findConfigFile( const QString& defaultConfigFile = "" );
|
||||||
}; // class Paths
|
}; // class Paths
|
||||||
|
|
||||||
|
@ -35,9 +35,9 @@ T degrees_to_radians( const T& degrees, typename std::enable_if< std::is_floatin
|
|||||||
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief decibel_to_power Перевод из децибелов в мощность
|
* \brief decibel_to_power Перевод из децибелов в мощность $y = 10^{db / 10}$
|
||||||
* \param degrees Значение в градусах
|
* \param db Децибелы
|
||||||
* \return Значение в радианах
|
* \return Мощность
|
||||||
*/
|
*/
|
||||||
template < typename T >
|
template < typename T >
|
||||||
T decibel_to_power( T const& db )
|
T decibel_to_power( T const& db )
|
||||||
@ -47,7 +47,11 @@ T decibel_to_power( T const& db )
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// y = 10 * \log(x)
|
/*!
|
||||||
|
* \brief power_to_decibel Перевод из мощности в децибелы по формуле $y = 10 * \log(x)$
|
||||||
|
* \param power Мощность
|
||||||
|
* \return Децибелы
|
||||||
|
*/
|
||||||
template < typename T >
|
template < typename T >
|
||||||
T power_to_decibel( T const& power )
|
T power_to_decibel( T const& power )
|
||||||
{
|
{
|
||||||
@ -56,21 +60,28 @@ T power_to_decibel( T const& power )
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// y = 10^{x / 20}
|
/*!
|
||||||
template < typename T >
|
* \brief decibel_to_power Перевод из децибелов в амплитуду $y = 10^{db / 20}$
|
||||||
T decibel_to_magnitude( T const& value )
|
* \param db Децибелы
|
||||||
|
* \return Амплитуда
|
||||||
|
*/template < typename T >
|
||||||
|
T decibel_to_magnitude( T const& db )
|
||||||
{
|
{
|
||||||
static_assert( std::is_arithmetic< T >::value, "Arithmetic type is required." );
|
static_assert( std::is_arithmetic< T >::value, "Arithmetic type is required." );
|
||||||
return( std::pow( 10, value / 20.0 ) );
|
return( std::pow( 10, db / 20.0 ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// y = 10^{x / 20}
|
/*!
|
||||||
|
* \brief magnitude_to_decibel Перевод из амплитуды в децибелы по формуле $y = 20 * \log(x)$
|
||||||
|
* \param magnitude Амплитуда
|
||||||
|
* \return Децибелы
|
||||||
|
*/
|
||||||
template < typename T >
|
template < typename T >
|
||||||
T decibel_to_magnitude( T const& value )
|
T magnitude_to_decibel( T const& magnitude )
|
||||||
{
|
{
|
||||||
static_assert( std::is_arithmetic< T >::value, "Arithmetic type is required." );
|
static_assert( std::is_arithmetic< T >::value, "Arithmetic type is required." );
|
||||||
return( std::pow( 10, value / 20.0 ) );
|
return( 20 * std::log( magnitude ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace math
|
} // namespace math
|
||||||
|
Loading…
Reference in New Issue
Block a user