Pass unique_ptrs around by value
This commit is contained in:
parent
40a0d8b2f7
commit
af2028e971
20 changed files with 28 additions and 28 deletions
|
@ -50,7 +50,7 @@ AssExportFilter::AssExportFilter(std::string const& name, std::string const& des
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void AssExportFilterChain::Register(std::unique_ptr<AssExportFilter>&& filter) {
|
void AssExportFilterChain::Register(std::unique_ptr<AssExportFilter> filter) {
|
||||||
int filter_copy = 1;
|
int filter_copy = 1;
|
||||||
std::string name = filter->name;
|
std::string name = filter->name;
|
||||||
// Find a unique name
|
// Find a unique name
|
||||||
|
|
|
@ -87,7 +87,7 @@ typedef boost::intrusive::make_list<AssExportFilter, boost::intrusive::constant_
|
||||||
class AssExportFilterChain {
|
class AssExportFilterChain {
|
||||||
public:
|
public:
|
||||||
/// Register an export filter
|
/// Register an export filter
|
||||||
static void Register(std::unique_ptr<AssExportFilter>&& filter);
|
static void Register(std::unique_ptr<AssExportFilter> filter);
|
||||||
/// Unregister and delete all export filters
|
/// Unregister and delete all export filters
|
||||||
static void Clear();
|
static void Clear();
|
||||||
/// Get a filter by name or nullptr if it doesn't exist
|
/// Get a filter by name or nullptr if it doesn't exist
|
||||||
|
|
|
@ -48,7 +48,7 @@
|
||||||
|
|
||||||
AssStyleStorage::~AssStyleStorage() { }
|
AssStyleStorage::~AssStyleStorage() { }
|
||||||
void AssStyleStorage::clear() { style.clear(); }
|
void AssStyleStorage::clear() { style.clear(); }
|
||||||
void AssStyleStorage::push_back( std::unique_ptr<AssStyle>&& new_style ) { style.emplace_back(std::move(new_style)); }
|
void AssStyleStorage::push_back(std::unique_ptr<AssStyle> new_style) { style.emplace_back(std::move(new_style)); }
|
||||||
|
|
||||||
void AssStyleStorage::Save() const {
|
void AssStyleStorage::Save() const {
|
||||||
if (file.empty()) return;
|
if (file.empty()) return;
|
||||||
|
|
|
@ -54,7 +54,7 @@ public:
|
||||||
iterator end() { return style.end(); }
|
iterator end() { return style.end(); }
|
||||||
const_iterator begin() const { return style.begin(); }
|
const_iterator begin() const { return style.begin(); }
|
||||||
const_iterator end() const { return style.end(); }
|
const_iterator end() const { return style.end(); }
|
||||||
void push_back(std::unique_ptr<AssStyle>&& new_style);
|
void push_back(std::unique_ptr<AssStyle> new_style);
|
||||||
AssStyle *back() { return style.back().get(); }
|
AssStyle *back() { return style.back().get(); }
|
||||||
AssStyle *operator[](size_t idx) const { return style[idx].get(); }
|
AssStyle *operator[](size_t idx) const { return style[idx].get(); }
|
||||||
size_t size() const { return style.size(); }
|
size_t size() const { return style.size(); }
|
||||||
|
|
|
@ -36,7 +36,7 @@ class AudioProviderConverter : public AudioProvider {
|
||||||
protected:
|
protected:
|
||||||
std::unique_ptr<AudioProvider> source;
|
std::unique_ptr<AudioProvider> source;
|
||||||
public:
|
public:
|
||||||
AudioProviderConverter(std::unique_ptr<AudioProvider>&& src)
|
AudioProviderConverter(std::unique_ptr<AudioProvider> src)
|
||||||
: source(std::move(src))
|
: source(std::move(src))
|
||||||
{
|
{
|
||||||
channels = source->GetChannels();
|
channels = source->GetChannels();
|
||||||
|
@ -54,7 +54,7 @@ template<class Target>
|
||||||
class BitdepthConvertAudioProvider : public AudioProviderConverter {
|
class BitdepthConvertAudioProvider : public AudioProviderConverter {
|
||||||
int src_bytes_per_sample;
|
int src_bytes_per_sample;
|
||||||
public:
|
public:
|
||||||
BitdepthConvertAudioProvider(std::unique_ptr<AudioProvider>&& src) : AudioProviderConverter(std::move(src)) {
|
BitdepthConvertAudioProvider(std::unique_ptr<AudioProvider> src) : AudioProviderConverter(std::move(src)) {
|
||||||
if (bytes_per_sample > 8)
|
if (bytes_per_sample > 8)
|
||||||
throw agi::AudioProviderOpenError("Audio format converter: audio with bitdepths greater than 64 bits/sample is currently unsupported", 0);
|
throw agi::AudioProviderOpenError("Audio format converter: audio with bitdepths greater than 64 bits/sample is currently unsupported", 0);
|
||||||
|
|
||||||
|
@ -94,7 +94,7 @@ public:
|
||||||
template<class Source, class Target>
|
template<class Source, class Target>
|
||||||
class FloatConvertAudioProvider : public AudioProviderConverter {
|
class FloatConvertAudioProvider : public AudioProviderConverter {
|
||||||
public:
|
public:
|
||||||
FloatConvertAudioProvider(std::unique_ptr<AudioProvider>&& src) : AudioProviderConverter(std::move(src)) {
|
FloatConvertAudioProvider(std::unique_ptr<AudioProvider> src) : AudioProviderConverter(std::move(src)) {
|
||||||
bytes_per_sample = sizeof(Target);
|
bytes_per_sample = sizeof(Target);
|
||||||
float_samples = false;
|
float_samples = false;
|
||||||
}
|
}
|
||||||
|
@ -126,7 +126,7 @@ public:
|
||||||
class DownmixAudioProvider : public AudioProviderConverter {
|
class DownmixAudioProvider : public AudioProviderConverter {
|
||||||
int src_channels;
|
int src_channels;
|
||||||
public:
|
public:
|
||||||
DownmixAudioProvider(std::unique_ptr<AudioProvider>&& src) : AudioProviderConverter(std::move(src)) {
|
DownmixAudioProvider(std::unique_ptr<AudioProvider> src) : AudioProviderConverter(std::move(src)) {
|
||||||
if (bytes_per_sample != 2)
|
if (bytes_per_sample != 2)
|
||||||
throw agi::InternalError("DownmixAudioProvider requires 16-bit input", 0);
|
throw agi::InternalError("DownmixAudioProvider requires 16-bit input", 0);
|
||||||
if (channels == 1)
|
if (channels == 1)
|
||||||
|
@ -156,7 +156,7 @@ public:
|
||||||
/// Requires 16-bit mono input
|
/// Requires 16-bit mono input
|
||||||
class SampleDoublingAudioProvider : public AudioProviderConverter {
|
class SampleDoublingAudioProvider : public AudioProviderConverter {
|
||||||
public:
|
public:
|
||||||
SampleDoublingAudioProvider(std::unique_ptr<AudioProvider>&& src) : AudioProviderConverter(std::move(src)) {
|
SampleDoublingAudioProvider(std::unique_ptr<AudioProvider> src) : AudioProviderConverter(std::move(src)) {
|
||||||
if (source->GetBytesPerSample() != 2)
|
if (source->GetBytesPerSample() != 2)
|
||||||
throw agi::InternalError("UpsampleAudioProvider requires 16-bit input", 0);
|
throw agi::InternalError("UpsampleAudioProvider requires 16-bit input", 0);
|
||||||
if (source->GetChannels() != 1)
|
if (source->GetChannels() != 1)
|
||||||
|
@ -192,7 +192,7 @@ public:
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
std::unique_ptr<AudioProvider> CreateConvertAudioProvider(std::unique_ptr<AudioProvider>&& provider) {
|
std::unique_ptr<AudioProvider> CreateConvertAudioProvider(std::unique_ptr<AudioProvider> provider) {
|
||||||
// Ensure 16-bit audio with proper endianness
|
// Ensure 16-bit audio with proper endianness
|
||||||
if (provider->AreSamplesFloat()) {
|
if (provider->AreSamplesFloat()) {
|
||||||
LOG_D("audio_provider") << "Converting float to S16";
|
LOG_D("audio_provider") << "Converting float to S16";
|
||||||
|
@ -218,5 +218,5 @@ std::unique_ptr<AudioProvider> CreateConvertAudioProvider(std::unique_ptr<AudioP
|
||||||
provider = agi::util::make_unique<SampleDoublingAudioProvider>(std::move(provider));
|
provider = agi::util::make_unique<SampleDoublingAudioProvider>(std::move(provider));
|
||||||
}
|
}
|
||||||
|
|
||||||
return std::move(provider);
|
return provider;
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,4 +24,4 @@
|
||||||
class AudioProvider;
|
class AudioProvider;
|
||||||
|
|
||||||
/// Get an audio provider which supplies audio in a format supported by Aegisub's players
|
/// Get an audio provider which supplies audio in a format supported by Aegisub's players
|
||||||
std::unique_ptr<AudioProvider> CreateConvertAudioProvider(std::unique_ptr<AudioProvider>&& source_provider);
|
std::unique_ptr<AudioProvider> CreateConvertAudioProvider(std::unique_ptr<AudioProvider> source_provider);
|
||||||
|
|
|
@ -89,7 +89,7 @@ public:
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
HDAudioProvider::HDAudioProvider(std::unique_ptr<AudioProvider>&& src, agi::BackgroundRunner *br) {
|
HDAudioProvider::HDAudioProvider(std::unique_ptr<AudioProvider> src, agi::BackgroundRunner *br) {
|
||||||
bytes_per_sample = src->GetBytesPerSample();
|
bytes_per_sample = src->GetBytesPerSample();
|
||||||
num_samples = src->GetNumSamples();
|
num_samples = src->GetNumSamples();
|
||||||
channels = src->GetChannels();
|
channels = src->GetChannels();
|
||||||
|
|
|
@ -54,6 +54,6 @@ class HDAudioProvider : public AudioProvider {
|
||||||
void FillBuffer(void *buf, int64_t start, int64_t count) const;
|
void FillBuffer(void *buf, int64_t start, int64_t count) const;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
HDAudioProvider(std::unique_ptr<AudioProvider>&& source, agi::BackgroundRunner *br);
|
HDAudioProvider(std::unique_ptr<AudioProvider> source, agi::BackgroundRunner *br);
|
||||||
~HDAudioProvider();
|
~HDAudioProvider();
|
||||||
};
|
};
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
|
|
||||||
#include "audio_provider_lock.h"
|
#include "audio_provider_lock.h"
|
||||||
|
|
||||||
LockAudioProvider::LockAudioProvider(std::unique_ptr<AudioProvider>&& src)
|
LockAudioProvider::LockAudioProvider(std::unique_ptr<AudioProvider> src)
|
||||||
: source(std::move(src))
|
: source(std::move(src))
|
||||||
{
|
{
|
||||||
channels = source->GetChannels();
|
channels = source->GetChannels();
|
||||||
|
|
|
@ -27,5 +27,5 @@ class LockAudioProvider : public AudioProvider {
|
||||||
|
|
||||||
void FillBuffer(void *buf, int64_t start, int64_t count) const;
|
void FillBuffer(void *buf, int64_t start, int64_t count) const;
|
||||||
public:
|
public:
|
||||||
LockAudioProvider(std::unique_ptr<AudioProvider>&& source);
|
LockAudioProvider(std::unique_ptr<AudioProvider> source);
|
||||||
};
|
};
|
||||||
|
|
|
@ -46,7 +46,7 @@
|
||||||
#define CacheBits 22
|
#define CacheBits 22
|
||||||
#define CacheBlockSize (1 << CacheBits)
|
#define CacheBlockSize (1 << CacheBits)
|
||||||
|
|
||||||
RAMAudioProvider::RAMAudioProvider(std::unique_ptr<AudioProvider>&& src, agi::BackgroundRunner *br) {
|
RAMAudioProvider::RAMAudioProvider(std::unique_ptr<AudioProvider> src, agi::BackgroundRunner *br) {
|
||||||
try {
|
try {
|
||||||
blockcache.resize((src->GetNumSamples() * src->GetBytesPerSample() + CacheBlockSize - 1) >> CacheBits);
|
blockcache.resize((src->GetNumSamples() * src->GetBytesPerSample() + CacheBlockSize - 1) >> CacheBits);
|
||||||
}
|
}
|
||||||
|
|
|
@ -53,5 +53,5 @@ class RAMAudioProvider : public AudioProvider {
|
||||||
void FillBuffer(void *buf, int64_t start, int64_t count) const;
|
void FillBuffer(void *buf, int64_t start, int64_t count) const;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
RAMAudioProvider(std::unique_ptr<AudioProvider>&& source, agi::BackgroundRunner *br);
|
RAMAudioProvider(std::unique_ptr<AudioProvider> source, agi::BackgroundRunner *br);
|
||||||
};
|
};
|
||||||
|
|
|
@ -291,7 +291,7 @@ namespace Automation4 {
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScriptManager::Add(std::unique_ptr<Script>&& script)
|
void ScriptManager::Add(std::unique_ptr<Script> script)
|
||||||
{
|
{
|
||||||
if (find(scripts.begin(), scripts.end(), script) == scripts.end())
|
if (find(scripts.begin(), scripts.end(), script) == scripts.end())
|
||||||
scripts.emplace_back(std::move(script));
|
scripts.emplace_back(std::move(script));
|
||||||
|
@ -460,7 +460,7 @@ namespace Automation4 {
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScriptFactory::Register(std::unique_ptr<ScriptFactory>&& factory)
|
void ScriptFactory::Register(std::unique_ptr<ScriptFactory> factory)
|
||||||
{
|
{
|
||||||
if (find(Factories().begin(), Factories().end(), factory) != Factories().end())
|
if (find(Factories().begin(), Factories().end(), factory) != Factories().end())
|
||||||
throw agi::InternalError("Automation 4: Attempt to register the same script factory multiple times. This should never happen.", 0);
|
throw agi::InternalError("Automation 4: Attempt to register the same script factory multiple times. This should never happen.", 0);
|
||||||
|
|
|
@ -197,7 +197,7 @@ namespace Automation4 {
|
||||||
/// Deletes all scripts managed
|
/// Deletes all scripts managed
|
||||||
virtual ~ScriptManager();
|
virtual ~ScriptManager();
|
||||||
/// Add a script to the manager.
|
/// Add a script to the manager.
|
||||||
void Add(std::unique_ptr<Script>&& script);
|
void Add(std::unique_ptr<Script> script);
|
||||||
/// Remove a script from the manager, and delete the Script object.
|
/// Remove a script from the manager, and delete the Script object.
|
||||||
void Remove(Script *script);
|
void Remove(Script *script);
|
||||||
/// Deletes all scripts managed
|
/// Deletes all scripts managed
|
||||||
|
@ -265,7 +265,7 @@ namespace Automation4 {
|
||||||
const std::string& GetFilenamePattern() const { return filename_pattern; }
|
const std::string& GetFilenamePattern() const { return filename_pattern; }
|
||||||
|
|
||||||
/// Register an automation engine.
|
/// Register an automation engine.
|
||||||
static void Register(std::unique_ptr<ScriptFactory>&& factory);
|
static void Register(std::unique_ptr<ScriptFactory> factory);
|
||||||
|
|
||||||
/// Get the full wildcard string for all loaded engines
|
/// Get the full wildcard string for all loaded engines
|
||||||
static std::string GetWildcardStr();
|
static std::string GetWildcardStr();
|
||||||
|
|
|
@ -36,7 +36,7 @@ namespace cmd {
|
||||||
return it;
|
return it;
|
||||||
}
|
}
|
||||||
|
|
||||||
void reg(std::unique_ptr<Command>&& cmd) {
|
void reg(std::unique_ptr<Command> cmd) {
|
||||||
cmd_map[cmd->name()] = std::move(cmd);
|
cmd_map[cmd->name()] = std::move(cmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -138,7 +138,7 @@ namespace cmd {
|
||||||
|
|
||||||
/// Register a command.
|
/// Register a command.
|
||||||
/// @param cmd Command object to register.
|
/// @param cmd Command object to register.
|
||||||
void reg(std::unique_ptr<Command>&& cmd);
|
void reg(std::unique_ptr<Command> cmd);
|
||||||
|
|
||||||
/// Unregister a command.
|
/// Unregister a command.
|
||||||
/// @param cmd Command name to unregister. The associated command object is deleted.
|
/// @param cmd Command name to unregister. The associated command object is deleted.
|
||||||
|
|
|
@ -590,7 +590,7 @@ Advanced_Video::Advanced_Video(wxTreebook *book, Preferences *parent): OptionPag
|
||||||
SetSizerAndFit(sizer);
|
SetSizerAndFit(sizer);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Preferences::SetOption(std::unique_ptr<agi::OptionValue>&& new_value) {
|
void Preferences::SetOption(std::unique_ptr<agi::OptionValue> new_value) {
|
||||||
pending_changes[new_value->GetName()] = std::move(new_value);
|
pending_changes[new_value->GetName()] = std::move(new_value);
|
||||||
if (IsEnabled())
|
if (IsEnabled())
|
||||||
applyButton->Enable(true);
|
applyButton->Enable(true);
|
||||||
|
|
|
@ -56,7 +56,7 @@ public:
|
||||||
|
|
||||||
/// Add an option to be set when the OK or Apply button is clicked
|
/// Add an option to be set when the OK or Apply button is clicked
|
||||||
/// @param new_value Clone of the option with the new value to copy over
|
/// @param new_value Clone of the option with the new value to copy over
|
||||||
void SetOption(std::unique_ptr<agi::OptionValue>&& new_value);
|
void SetOption(std::unique_ptr<agi::OptionValue> new_value);
|
||||||
|
|
||||||
/// All a function to call when the OK or Apply button is clicked
|
/// All a function to call when the OK or Apply button is clicked
|
||||||
/// @param callback Function to call
|
/// @param callback Function to call
|
||||||
|
|
|
@ -407,7 +407,7 @@ void VideoDisplay::SetZoomFromBoxText(wxCommandEvent &) {
|
||||||
SetZoom(value / 100.);
|
SetZoom(value / 100.);
|
||||||
}
|
}
|
||||||
|
|
||||||
void VideoDisplay::SetTool(std::unique_ptr<VisualToolBase>&& new_tool) {
|
void VideoDisplay::SetTool(std::unique_ptr<VisualToolBase> new_tool) {
|
||||||
toolBar->ClearTools();
|
toolBar->ClearTools();
|
||||||
toolBar->Realize();
|
toolBar->Realize();
|
||||||
toolBar->Show(false);
|
toolBar->Show(false);
|
||||||
|
|
|
@ -160,7 +160,7 @@ public:
|
||||||
/// Get the last seen position of the mouse in script coordinates
|
/// Get the last seen position of the mouse in script coordinates
|
||||||
Vector2D GetMousePosition() const;
|
Vector2D GetMousePosition() const;
|
||||||
|
|
||||||
void SetTool(std::unique_ptr<VisualToolBase>&& new_tool);
|
void SetTool(std::unique_ptr<VisualToolBase> new_tool);
|
||||||
|
|
||||||
bool ToolIsType(std::type_info const& type) const;
|
bool ToolIsType(std::type_info const& type) const;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue