Add ARDOUR::get_state_files_in_directory and ARDOUR::get_file_names_no_extension to ardour/session_state_utils.h/cc
git-svn-id: svn://localhost/ardour2/trunk@2386 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
bf69e8f09a
commit
078e867f3c
@ -19,10 +19,15 @@
|
||||
#ifndef ARDOUR_SESSION_STATE_UTILS_INCLUDED
|
||||
#define ARDOUR_SESSION_STATE_UTILS_INCLUDED
|
||||
|
||||
#include <vector>
|
||||
#include <string>
|
||||
|
||||
#include <pbd/filesystem.h>
|
||||
|
||||
namespace ARDOUR {
|
||||
|
||||
using std::string;
|
||||
using std::vector;
|
||||
using namespace PBD;
|
||||
|
||||
/**
|
||||
@ -35,6 +40,26 @@ using namespace PBD;
|
||||
*/
|
||||
bool create_backup_file (const sys::path & file_path);
|
||||
|
||||
/**
|
||||
* Get the absolute paths to all state files in the directory
|
||||
* at path directory_path.
|
||||
*
|
||||
* @param directory_path The absolute path to a directory.
|
||||
* @param result vector to contain resulting state files.
|
||||
*/
|
||||
void get_state_files_in_directory (const sys::path & directory_path,
|
||||
vector<sys::path>& result);
|
||||
|
||||
/**
|
||||
* Given a vector of paths to files, return a vector containing
|
||||
* the filenames without any extension.
|
||||
*
|
||||
* @param file_paths a vector containing the file paths
|
||||
* @return a vector containing a list of file names without any
|
||||
* filename extension.
|
||||
*/
|
||||
vector<string> get_file_names_no_extension (const vector<sys::path> & file_paths);
|
||||
|
||||
} // namespace ARDOUR
|
||||
|
||||
#endif
|
||||
|
@ -17,7 +17,9 @@
|
||||
*/
|
||||
|
||||
#include <pbd/compose.h>
|
||||
#include <pbd/basename.h>
|
||||
#include <pbd/error.h>
|
||||
#include <pbd/file_utils.h>
|
||||
|
||||
#include <ardour/session_state_utils.h>
|
||||
#include <ardour/filename_extensions.h>
|
||||
@ -47,4 +49,30 @@ create_backup_file (const sys::path & file_path)
|
||||
return true;
|
||||
}
|
||||
|
||||
void
|
||||
get_state_files_in_directory (const sys::path & directory_path,
|
||||
vector<sys::path> & result)
|
||||
{
|
||||
Glib::PatternSpec state_file_pattern('*' + string(statefile_suffix));
|
||||
|
||||
find_matching_files_in_directory (directory_path, state_file_pattern,
|
||||
result);
|
||||
}
|
||||
|
||||
vector<string>
|
||||
get_file_names_no_extension (const vector<sys::path> & file_paths)
|
||||
{
|
||||
vector<string> result;
|
||||
|
||||
for (vector<sys::path>::const_iterator i = file_paths.begin();
|
||||
i != file_paths.end(); ++i)
|
||||
{
|
||||
result.push_back (basename_nosuffix((*i).to_string()));
|
||||
}
|
||||
|
||||
sort (result.begin(), result.end(), std::less<string>());
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
} // namespace ARDOUR
|
||||
|
Loading…
Reference in New Issue
Block a user