mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-17 04:06:26 +01:00
namespace libardour utils
This commit is contained in:
parent
4da2fadb9e
commit
1bd4e448de
6 changed files with 38 additions and 31 deletions
|
|
@ -507,7 +507,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr
|
||||||
|
|
||||||
struct RecentSessionsSorter {
|
struct RecentSessionsSorter {
|
||||||
bool operator() (std::pair<std::string,std::string> a, std::pair<std::string,std::string> b) const {
|
bool operator() (std::pair<std::string,std::string> a, std::pair<std::string,std::string> b) const {
|
||||||
return cmp_nocase(a.first, b.first) == -1;
|
return ARDOUR::cmp_nocase(a.first, b.first) == -1;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1294,7 +1294,7 @@ EngineControl::set_state (const XMLNode& root)
|
||||||
|
|
||||||
state->midi_devices.clear();
|
state->midi_devices.clear();
|
||||||
XMLNode* midinode;
|
XMLNode* midinode;
|
||||||
if ((midinode = find_named_node (*grandchild, "MIDIDevices")) != 0) {
|
if ((midinode = ARDOUR::find_named_node (*grandchild, "MIDIDevices")) != 0) {
|
||||||
const XMLNodeList mnc = midinode->children();
|
const XMLNodeList mnc = midinode->children();
|
||||||
for (XMLNodeList::const_iterator n = mnc.begin(); n != mnc.end(); ++n) {
|
for (XMLNodeList::const_iterator n = mnc.begin(); n != mnc.end(); ++n) {
|
||||||
if ((*n)->property (X_("name")) == 0
|
if ((*n)->property (X_("name")) == 0
|
||||||
|
|
|
||||||
|
|
@ -104,7 +104,7 @@ class SessionDialog : public ArdourDialog {
|
||||||
|
|
||||||
struct RecentSessionsSorter {
|
struct RecentSessionsSorter {
|
||||||
bool operator() (std::pair<std::string,std::string> a, std::pair<std::string,std::string> b) const {
|
bool operator() (std::pair<std::string,std::string> a, std::pair<std::string,std::string> b) const {
|
||||||
return cmp_nocase(a.first, b.first) == -1;
|
return ARDOUR::cmp_nocase(a.first, b.first) == -1;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -116,7 +116,7 @@ VolumeController::to_control_value (double display_value)
|
||||||
if (_linear) {
|
if (_linear) {
|
||||||
v = _controllable->lower() + ((_controllable->upper() - _controllable->lower()) * display_value);
|
v = _controllable->lower() + ((_controllable->upper() - _controllable->lower()) * display_value);
|
||||||
} else {
|
} else {
|
||||||
v = slider_position_to_gain_with_max (display_value, ARDOUR::Config->get_max_gain());
|
v = ARDOUR::slider_position_to_gain_with_max (display_value, ARDOUR::Config->get_max_gain());
|
||||||
}
|
}
|
||||||
|
|
||||||
return v;
|
return v;
|
||||||
|
|
@ -130,7 +130,7 @@ VolumeController::to_display_value (double control_value)
|
||||||
if (_linear) {
|
if (_linear) {
|
||||||
v = (control_value - _controllable->lower ()) / (_controllable->upper() - _controllable->lower());
|
v = (control_value - _controllable->lower ()) / (_controllable->upper() - _controllable->lower());
|
||||||
} else {
|
} else {
|
||||||
v = gain_to_slider_position_with_max (control_value, _controllable->upper());
|
v = ARDOUR::gain_to_slider_position_with_max (control_value, _controllable->upper());
|
||||||
}
|
}
|
||||||
|
|
||||||
return v;
|
return v;
|
||||||
|
|
@ -151,13 +151,13 @@ VolumeController::adjust (double control_delta)
|
||||||
*/
|
*/
|
||||||
#if 0
|
#if 0
|
||||||
/* convert to linear/fractional slider position domain */
|
/* convert to linear/fractional slider position domain */
|
||||||
v = gain_to_slider_position_with_max (_controllable->get_value (), _controllable->upper());
|
v = ARDOUR::gain_to_slider_position_with_max (_controllable->get_value (), _controllable->upper());
|
||||||
/* increment in this domain */
|
/* increment in this domain */
|
||||||
v += control_delta;
|
v += control_delta;
|
||||||
/* clamp to appropriate range for linear/fractional slider domain */
|
/* clamp to appropriate range for linear/fractional slider domain */
|
||||||
v = std::max (0.0, std::min (1.0, v));
|
v = std::max (0.0, std::min (1.0, v));
|
||||||
/* convert back to gain coefficient domain */
|
/* convert back to gain coefficient domain */
|
||||||
v = slider_position_to_gain_with_max (v, _controllable->upper());
|
v = ARDOUR::slider_position_to_gain_with_max (v, _controllable->upper());
|
||||||
/* clamp in controller domain */
|
/* clamp in controller domain */
|
||||||
v = std::max (_controllable->lower(), std::min (_controllable->upper(), v));
|
v = std::max (_controllable->lower(), std::min (_controllable->upper(), v));
|
||||||
/* convert to dB domain */
|
/* convert to dB domain */
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,8 @@
|
||||||
|
|
||||||
class XMLNode;
|
class XMLNode;
|
||||||
|
|
||||||
|
namespace ARDOUR {
|
||||||
|
|
||||||
LIBARDOUR_API std::string legalize_for_path (const std::string& str);
|
LIBARDOUR_API std::string legalize_for_path (const std::string& str);
|
||||||
LIBARDOUR_API std::string legalize_for_universal_path (const std::string& str);
|
LIBARDOUR_API std::string legalize_for_universal_path (const std::string& str);
|
||||||
LIBARDOUR_API std::string legalize_for_uri (const std::string& str);
|
LIBARDOUR_API std::string legalize_for_uri (const std::string& str);
|
||||||
|
|
@ -174,5 +176,7 @@ LIBARDOUR_API uint32_t how_many_dsp_threads ();
|
||||||
LIBARDOUR_API std::string CFStringRefToStdString(CFStringRef stringRef);
|
LIBARDOUR_API std::string CFStringRefToStdString(CFStringRef stringRef);
|
||||||
#endif // __APPLE__
|
#endif // __APPLE__
|
||||||
|
|
||||||
|
} //namespave
|
||||||
|
|
||||||
#endif /* __ardour_utils_h__ */
|
#endif /* __ardour_utils_h__ */
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -93,7 +93,7 @@ replace_chars (const string& str, const string& illegal_chars)
|
||||||
* the goal there is to be legal across filesystems.
|
* the goal there is to be legal across filesystems.
|
||||||
*/
|
*/
|
||||||
string
|
string
|
||||||
legalize_for_path (const string& str)
|
ARDOUR::legalize_for_path (const string& str)
|
||||||
{
|
{
|
||||||
return replace_chars (str, "/\\");
|
return replace_chars (str, "/\\");
|
||||||
}
|
}
|
||||||
|
|
@ -108,7 +108,7 @@ legalize_for_path (const string& str)
|
||||||
* ANY filesystem.
|
* ANY filesystem.
|
||||||
*/
|
*/
|
||||||
string
|
string
|
||||||
legalize_for_universal_path (const string& str)
|
ARDOUR::legalize_for_universal_path (const string& str)
|
||||||
{
|
{
|
||||||
return replace_chars (str, "<>:\"/\\|?*");
|
return replace_chars (str, "<>:\"/\\|?*");
|
||||||
}
|
}
|
||||||
|
|
@ -119,7 +119,7 @@ legalize_for_universal_path (const string& str)
|
||||||
* correct.
|
* correct.
|
||||||
*/
|
*/
|
||||||
string
|
string
|
||||||
legalize_for_uri (const string& str)
|
ARDOUR::legalize_for_uri (const string& str)
|
||||||
{
|
{
|
||||||
return replace_chars (str, "<>:\"/\\|?* #");
|
return replace_chars (str, "<>:\"/\\|?* #");
|
||||||
}
|
}
|
||||||
|
|
@ -133,7 +133,7 @@ legalize_for_uri (const string& str)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
string
|
string
|
||||||
legalize_for_path_2X (const string& str)
|
ARDOUR::legalize_for_path_2X (const string& str)
|
||||||
{
|
{
|
||||||
string::size_type pos;
|
string::size_type pos;
|
||||||
string legal_chars = "abcdefghijklmnopqrtsuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_+=: ";
|
string legal_chars = "abcdefghijklmnopqrtsuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_+=: ";
|
||||||
|
|
@ -155,7 +155,7 @@ legalize_for_path_2X (const string& str)
|
||||||
}
|
}
|
||||||
|
|
||||||
string
|
string
|
||||||
bump_name_once (const std::string& name, char delimiter)
|
ARDOUR::bump_name_once (const std::string& name, char delimiter)
|
||||||
{
|
{
|
||||||
string::size_type delim;
|
string::size_type delim;
|
||||||
string newname;
|
string newname;
|
||||||
|
|
@ -197,7 +197,7 @@ bump_name_once (const std::string& name, char delimiter)
|
||||||
}
|
}
|
||||||
|
|
||||||
XMLNode *
|
XMLNode *
|
||||||
find_named_node (const XMLNode& node, string name)
|
ARDOUR::find_named_node (const XMLNode& node, string name)
|
||||||
{
|
{
|
||||||
XMLNodeList nlist;
|
XMLNodeList nlist;
|
||||||
XMLNodeConstIterator niter;
|
XMLNodeConstIterator niter;
|
||||||
|
|
@ -218,7 +218,7 @@ find_named_node (const XMLNode& node, string name)
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
cmp_nocase (const string& s, const string& s2)
|
ARDOUR::cmp_nocase (const string& s, const string& s2)
|
||||||
{
|
{
|
||||||
string::const_iterator p = s.begin();
|
string::const_iterator p = s.begin();
|
||||||
string::const_iterator p2 = s2.begin();
|
string::const_iterator p2 = s2.begin();
|
||||||
|
|
@ -234,7 +234,8 @@ cmp_nocase (const string& s, const string& s2)
|
||||||
return (s2.size() == s.size()) ? 0 : (s.size() < s2.size()) ? -1 : 1;
|
return (s2.size() == s.size()) ? 0 : (s.size() < s2.size()) ? -1 : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int cmp_nocase_utf8 (const string& s1, const string& s2)
|
int
|
||||||
|
ARDOUR::cmp_nocase_utf8 (const string& s1, const string& s2)
|
||||||
{
|
{
|
||||||
const char *cstr1 = s1.c_str();
|
const char *cstr1 = s1.c_str();
|
||||||
const char *cstr2 = s2.c_str();
|
const char *cstr2 = s2.c_str();
|
||||||
|
|
@ -270,7 +271,7 @@ int cmp_nocase_utf8 (const string& s1, const string& s2)
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
touch_file (string path)
|
ARDOUR::touch_file (string path)
|
||||||
{
|
{
|
||||||
int fd = open (path.c_str(), O_RDWR|O_CREAT, 0660);
|
int fd = open (path.c_str(), O_RDWR|O_CREAT, 0660);
|
||||||
if (fd >= 0) {
|
if (fd >= 0) {
|
||||||
|
|
@ -281,7 +282,7 @@ touch_file (string path)
|
||||||
}
|
}
|
||||||
|
|
||||||
string
|
string
|
||||||
region_name_from_path (string path, bool strip_channels, bool add_channel_suffix, uint32_t total, uint32_t this_one)
|
ARDOUR::region_name_from_path (string path, bool strip_channels, bool add_channel_suffix, uint32_t total, uint32_t this_one)
|
||||||
{
|
{
|
||||||
path = PBD::basename_nosuffix (path);
|
path = PBD::basename_nosuffix (path);
|
||||||
|
|
||||||
|
|
@ -313,7 +314,7 @@ region_name_from_path (string path, bool strip_channels, bool add_channel_suffix
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
path_is_paired (string path, string& pair_base)
|
ARDOUR::path_is_paired (string path, string& pair_base)
|
||||||
{
|
{
|
||||||
string::size_type pos;
|
string::size_type pos;
|
||||||
|
|
||||||
|
|
@ -346,7 +347,7 @@ path_is_paired (string path, string& pair_base)
|
||||||
|
|
||||||
#if __APPLE__
|
#if __APPLE__
|
||||||
string
|
string
|
||||||
CFStringRefToStdString(CFStringRef stringRef)
|
ARDOUR::CFStringRefToStdString(CFStringRef stringRef)
|
||||||
{
|
{
|
||||||
CFIndex size =
|
CFIndex size =
|
||||||
CFStringGetMaximumSizeForEncoding(CFStringGetLength(stringRef) ,
|
CFStringGetMaximumSizeForEncoding(CFStringGetLength(stringRef) ,
|
||||||
|
|
@ -364,7 +365,7 @@ CFStringRefToStdString(CFStringRef stringRef)
|
||||||
#endif // __APPLE__
|
#endif // __APPLE__
|
||||||
|
|
||||||
void
|
void
|
||||||
compute_equal_power_fades (framecnt_t nframes, float* in, float* out)
|
ARDOUR::compute_equal_power_fades (framecnt_t nframes, float* in, float* out)
|
||||||
{
|
{
|
||||||
double step;
|
double step;
|
||||||
|
|
||||||
|
|
@ -390,7 +391,7 @@ compute_equal_power_fades (framecnt_t nframes, float* in, float* out)
|
||||||
}
|
}
|
||||||
|
|
||||||
EditMode
|
EditMode
|
||||||
string_to_edit_mode (string str)
|
ARDOUR::string_to_edit_mode (string str)
|
||||||
{
|
{
|
||||||
if (str == _("Splice")) {
|
if (str == _("Splice")) {
|
||||||
return Splice;
|
return Splice;
|
||||||
|
|
@ -405,7 +406,7 @@ string_to_edit_mode (string str)
|
||||||
}
|
}
|
||||||
|
|
||||||
const char*
|
const char*
|
||||||
edit_mode_to_string (EditMode mode)
|
ARDOUR::edit_mode_to_string (EditMode mode)
|
||||||
{
|
{
|
||||||
switch (mode) {
|
switch (mode) {
|
||||||
case Slide:
|
case Slide:
|
||||||
|
|
@ -421,7 +422,7 @@ edit_mode_to_string (EditMode mode)
|
||||||
}
|
}
|
||||||
|
|
||||||
SyncSource
|
SyncSource
|
||||||
string_to_sync_source (string str)
|
ARDOUR::string_to_sync_source (string str)
|
||||||
{
|
{
|
||||||
if (str == _("MIDI Timecode") || str == _("MTC")) {
|
if (str == _("MIDI Timecode") || str == _("MTC")) {
|
||||||
return MTC;
|
return MTC;
|
||||||
|
|
@ -442,7 +443,7 @@ string_to_sync_source (string str)
|
||||||
|
|
||||||
/** @param sh Return a short version of the string */
|
/** @param sh Return a short version of the string */
|
||||||
const char*
|
const char*
|
||||||
sync_source_to_string (SyncSource src, bool sh)
|
ARDOUR::sync_source_to_string (SyncSource src, bool sh)
|
||||||
{
|
{
|
||||||
switch (src) {
|
switch (src) {
|
||||||
case Engine:
|
case Engine:
|
||||||
|
|
@ -473,7 +474,7 @@ sync_source_to_string (SyncSource src, bool sh)
|
||||||
}
|
}
|
||||||
|
|
||||||
float
|
float
|
||||||
meter_falloff_to_float (MeterFalloff falloff)
|
ARDOUR::meter_falloff_to_float (MeterFalloff falloff)
|
||||||
{
|
{
|
||||||
switch (falloff) {
|
switch (falloff) {
|
||||||
case MeterFalloffOff:
|
case MeterFalloffOff:
|
||||||
|
|
@ -500,7 +501,7 @@ meter_falloff_to_float (MeterFalloff falloff)
|
||||||
}
|
}
|
||||||
|
|
||||||
MeterFalloff
|
MeterFalloff
|
||||||
meter_falloff_from_float (float val)
|
ARDOUR::meter_falloff_from_float (float val)
|
||||||
{
|
{
|
||||||
if (val == METER_FALLOFF_OFF) {
|
if (val == METER_FALLOFF_OFF) {
|
||||||
return MeterFalloffOff;
|
return MeterFalloffOff;
|
||||||
|
|
@ -613,7 +614,7 @@ bool_as_string (bool yn)
|
||||||
}
|
}
|
||||||
|
|
||||||
const char*
|
const char*
|
||||||
native_header_format_extension (HeaderFormat hf, const DataType& type)
|
ARDOUR::native_header_format_extension (HeaderFormat hf, const DataType& type)
|
||||||
{
|
{
|
||||||
if (type == DataType::MIDI) {
|
if (type == DataType::MIDI) {
|
||||||
return ".mid";
|
return ".mid";
|
||||||
|
|
@ -642,7 +643,7 @@ native_header_format_extension (HeaderFormat hf, const DataType& type)
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
matching_unsuffixed_filename_exists_in (const string& dir, const string& path)
|
ARDOUR::matching_unsuffixed_filename_exists_in (const string& dir, const string& path)
|
||||||
{
|
{
|
||||||
string bws = basename_nosuffix (path);
|
string bws = basename_nosuffix (path);
|
||||||
struct dirent* dentry;
|
struct dirent* dentry;
|
||||||
|
|
@ -687,7 +688,7 @@ matching_unsuffixed_filename_exists_in (const string& dir, const string& path)
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t
|
uint32_t
|
||||||
how_many_dsp_threads ()
|
ARDOUR::how_many_dsp_threads ()
|
||||||
{
|
{
|
||||||
/* CALLER MUST HOLD PROCESS LOCK */
|
/* CALLER MUST HOLD PROCESS LOCK */
|
||||||
|
|
||||||
|
|
@ -720,12 +721,14 @@ how_many_dsp_threads ()
|
||||||
return num_threads;
|
return num_threads;
|
||||||
}
|
}
|
||||||
|
|
||||||
double gain_to_slider_position_with_max (double g, double max_gain)
|
double
|
||||||
|
ARDOUR::gain_to_slider_position_with_max (double g, double max_gain)
|
||||||
{
|
{
|
||||||
return gain_to_slider_position (g * 2.0/max_gain);
|
return gain_to_slider_position (g * 2.0/max_gain);
|
||||||
}
|
}
|
||||||
|
|
||||||
double slider_position_to_gain_with_max (double g, double max_gain)
|
double
|
||||||
|
ARDOUR::slider_position_to_gain_with_max (double g, double max_gain)
|
||||||
{
|
{
|
||||||
return slider_position_to_gain (g * max_gain/2.0);
|
return slider_position_to_gain (g * max_gain/2.0);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue