77d0851a65
... It became unused at d39590cf41
And remove some other complications in ProjectFileManager that were used only
in it
115 lines
3.0 KiB
C++
115 lines
3.0 KiB
C++
/**********************************************************************
|
|
|
|
Audacity - A Digital Audio Editor
|
|
Copyright 1999-2009 Audacity Team
|
|
File License: wxWidgets
|
|
|
|
Dan Horgan
|
|
James Crook
|
|
|
|
******************************************************************//**
|
|
|
|
\file ImportExportCommands.cpp
|
|
\brief Contains definitions for the ImportCommand and ExportCommand classes
|
|
|
|
*//*******************************************************************/
|
|
|
|
#include "../Audacity.h"
|
|
#include "ImportExportCommands.h"
|
|
|
|
#include "LoadCommands.h"
|
|
#include "../ProjectFileManager.h"
|
|
#include "../ViewInfo.h"
|
|
#include "../export/Export.h"
|
|
#include "../Shuttle.h"
|
|
#include "../ShuttleGui.h"
|
|
#include "../wxFileNameWrapper.h"
|
|
#include "CommandContext.h"
|
|
|
|
const ComponentInterfaceSymbol ImportCommand::Symbol
|
|
{ XO("Import2") };
|
|
|
|
namespace{ BuiltinCommandsModule::Registration< ImportCommand > reg; }
|
|
|
|
bool ImportCommand::DefineParams( ShuttleParams & S ){
|
|
S.Define( mFileName, wxT("Filename"), "" );
|
|
return true;
|
|
}
|
|
|
|
void ImportCommand::PopulateOrExchange(ShuttleGui & S)
|
|
{
|
|
S.AddSpace(0, 5);
|
|
|
|
S.StartMultiColumn(2, wxALIGN_CENTER);
|
|
{
|
|
S.TieTextBox(XXO("File Name:"),mFileName);
|
|
}
|
|
S.EndMultiColumn();
|
|
}
|
|
|
|
bool ImportCommand::Apply(const CommandContext & context){
|
|
return ProjectFileManager::Get( context.project )
|
|
.Import(mFileName, false);
|
|
}
|
|
|
|
|
|
|
|
bool ExportCommand::DefineParams( ShuttleParams & S ){
|
|
wxFileName fn = FileNames::FindDefaultPath(FileNames::Operation::Export);
|
|
fn.SetName("exported.wav");
|
|
S.Define(mFileName, wxT("Filename"), fn.GetFullPath());
|
|
S.Define( mnChannels, wxT("NumChannels"), 1 );
|
|
return true;
|
|
}
|
|
|
|
const ComponentInterfaceSymbol ExportCommand::Symbol
|
|
{ XO("Export2") };
|
|
|
|
namespace{ BuiltinCommandsModule::Registration< ExportCommand > reg2; }
|
|
|
|
void ExportCommand::PopulateOrExchange(ShuttleGui & S)
|
|
{
|
|
S.AddSpace(0, 5);
|
|
|
|
S.StartMultiColumn(2, wxALIGN_CENTER);
|
|
{
|
|
S.TieTextBox(XXO("File Name:"),mFileName);
|
|
S.TieTextBox(XXO("Number of Channels:"),mnChannels);
|
|
}
|
|
S.EndMultiColumn();
|
|
}
|
|
|
|
bool ExportCommand::Apply(const CommandContext & context)
|
|
{
|
|
double t0, t1;
|
|
auto &selectedRegion = ViewInfo::Get( context.project ).selectedRegion;
|
|
t0 = selectedRegion.t0();
|
|
t1 = selectedRegion.t1();
|
|
|
|
// Find the extension and check it's valid
|
|
int splitAt = mFileName.Find(wxUniChar('.'), true);
|
|
if (splitAt < 0)
|
|
{
|
|
context.Error(wxT("Export filename must have an extension!"));
|
|
return false;
|
|
}
|
|
wxString extension = mFileName.Mid(splitAt+1).MakeUpper();
|
|
|
|
Exporter exporter{ context.project };
|
|
|
|
bool exportSuccess = exporter.Process(std::max(0, mnChannels),
|
|
extension, mFileName,
|
|
true, t0, t1);
|
|
|
|
if (exportSuccess)
|
|
{
|
|
context.Status(wxString::Format(wxT("Exported to %s format: %s"),
|
|
extension, mFileName));
|
|
return true;
|
|
}
|
|
|
|
context.Error(wxString::Format(wxT("Could not export to %s format!"), extension));
|
|
return false;
|
|
}
|
|
|