Audacity 3.2.0
Enumerations | Functions
audacity::cloud::audiocom::sync::anonymous_namespace{CloudProjectOpenUtils.cpp} Namespace Reference

Enumerations

enum class  ConflictResolution { None , Remote , Local , Stop }
 

Functions

auto MakeProgress ()
 
auto MakePoller (BasicUI::ProgressDialog &dialog)
 
template<typename T >
GetResult (std::future< T > &future)
 
bool HandleFailure (const ProjectSyncResult &result)
 
ConflictResolution GetConfilctResolution (AudacityProject *project, const ProjectSyncResult &result)
 
void LogTransferStats (TransferStats stats)
 

Enumeration Type Documentation

◆ ConflictResolution

enum class audacity::cloud::audiocom::sync::anonymous_namespace{CloudProjectOpenUtils.cpp}::ConflictResolution
strong

Function Documentation

◆ GetConfilctResolution()

ConflictResolution audacity::cloud::audiocom::sync::anonymous_namespace{CloudProjectOpenUtils.cpp}::GetConfilctResolution ( AudacityProject project,
const ProjectSyncResult result 
)

Definition at line 99 of file CloudProjectOpenUtils.cpp.

100{
102 return ConflictResolution::None;
103
105 project, ProjectVersionConflictDialogMode::OpenDirty
106 };
107 const auto resolution = dialog.ShowDialog();
108
109 if (resolution == ProjectVersionConflictDialog::CancelButtonIdentifier())
110 return ConflictResolution::Stop;
111
112 if (resolution == ProjectVersionConflictDialog::UseLocalIdentifier())
113 return ConflictResolution::Local;
114
115 if (resolution == ProjectVersionConflictDialog::UseRemoteIdentifier())
116 return ConflictResolution::Remote;
117
118 assert(false);
119 return ConflictResolution::Stop;
120}
const auto project

References audacity::cloud::audiocom::sync::AudioComDialogBase::CancelButtonIdentifier(), audacity::cloud::audiocom::ResponseResult::Code, audacity::cloud::audiocom::Conflict, audacity::cloud::audiocom::sync::OpenDirty, project, audacity::cloud::audiocom::sync::ProjectSyncResult::Result, audacity::cloud::audiocom::sync::ProjectVersionConflictDialog::UseLocalIdentifier(), and audacity::cloud::audiocom::sync::ProjectVersionConflictDialog::UseRemoteIdentifier().

Referenced by audacity::cloud::audiocom::sync::OpenProjectFromCloud(), and audacity::cloud::audiocom::sync::SyncCloudProject().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetResult()

template<typename T >
T audacity::cloud::audiocom::sync::anonymous_namespace{CloudProjectOpenUtils.cpp}::GetResult ( std::future< T > &  future)

Definition at line 54 of file CloudProjectOpenUtils.cpp.

55{
56 while (future.wait_for(std::chrono::milliseconds(50)) !=
57 std::future_status::ready)
59
60 return future.get();
61}
void Yield()
Dispatch waiting events, including actions enqueued by CallAfter.
Definition: BasicUI.cpp:223

References BasicUI::Yield().

Referenced by audacity::cloud::audiocom::sync::OpenProjectFromCloud(), and audacity::cloud::audiocom::sync::SyncCloudProject().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ HandleFailure()

bool audacity::cloud::audiocom::sync::anonymous_namespace{CloudProjectOpenUtils.cpp}::HandleFailure ( const ProjectSyncResult result)

Definition at line 63 of file CloudProjectOpenUtils.cpp.

64{
65 if (
66 result.Status == ProjectSyncResult::StatusCode::Succeeded ||
68 return false;
69
71 {
72 wxLogError(
73 "Opening of the cloud project was canceled", result.Result.Content);
74 return true;
75 }
76
77 if (result.Result.Code == SyncResultCode::SyncImpossible)
78 {
79 UnsyncedProjectDialog { nullptr, false }.ShowDialog();
80 return true;
81 }
82
84
85 wxLogError("Failed to open cloud project: %s", result.Result.Content);
86
87 return true;
88}
DialogButtonIdentifier ShowDialog(std::function< DialogButtonIdentifier()> poller={})
void OnOpen(const CommandContext &context)
Definition: FileMenus.cpp:193

References audacity::cloud::audiocom::Cancelled, audacity::cloud::audiocom::ResponseResult::Code, audacity::cloud::audiocom::Conflict, audacity::cloud::audiocom::ResponseResult::Content, audacity::cloud::audiocom::sync::SyncFailedDialog::OnOpen(), audacity::cloud::audiocom::sync::ProjectSyncResult::Result, audacity::cloud::audiocom::sync::AudioComDialogBase::ShowDialog(), audacity::cloud::audiocom::sync::ProjectSyncResult::Status, audacity::cloud::audiocom::sync::ProjectSyncResult::Succeeded, and audacity::cloud::audiocom::SyncImpossible.

Referenced by audacity::cloud::audiocom::sync::OpenProjectFromCloud(), and audacity::cloud::audiocom::sync::SyncCloudProject().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ LogTransferStats()

void audacity::cloud::audiocom::sync::anonymous_namespace{CloudProjectOpenUtils.cpp}::LogTransferStats ( TransferStats  stats)

Definition at line 122 of file CloudProjectOpenUtils.cpp.

123{
124 wxLogMessage(
125 "Transfer stats: %f Kb transferred, %f secs",
126 stats.BytesTransferred / 1024.0,
127 std::chrono::duration<float>(stats.TransferDuration).count());
128}

References audacity::cloud::audiocom::TransferStats::BytesTransferred, and audacity::cloud::audiocom::TransferStats::TransferDuration.

Referenced by audacity::cloud::audiocom::sync::OpenProjectFromCloud(), and audacity::cloud::audiocom::sync::SyncCloudProject().

Here is the caller graph for this function:

◆ MakePoller()

auto audacity::cloud::audiocom::sync::anonymous_namespace{CloudProjectOpenUtils.cpp}::MakePoller ( BasicUI::ProgressDialog dialog)

Definition at line 44 of file CloudProjectOpenUtils.cpp.

45{
46 return [&dialog](double progress)
47 {
48 return dialog.Poll(static_cast<unsigned>(progress * 10000), 10000ULL) ==
50 };
51}
virtual ProgressResult Poll(unsigned long long numerator, unsigned long long denominator, const TranslatableString &message={})=0
Update the bar and poll for clicks. Call only on the main thread.

References BasicUI::ProgressDialog::Poll(), and BasicUI::Success.

Referenced by audacity::cloud::audiocom::sync::OpenProjectFromCloud(), and audacity::cloud::audiocom::sync::SyncCloudProject().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ MakeProgress()

auto audacity::cloud::audiocom::sync::anonymous_namespace{CloudProjectOpenUtils.cpp}::MakeProgress ( )

Definition at line 37 of file CloudProjectOpenUtils.cpp.

38{
40 XO("Open from audio.com"), XO("Synchronizing project"),
42}
XO("Cut/Copy/Paste")
@ ProgressShowCancel
Definition: BasicUI.h:142
std::unique_ptr< ProgressDialog > MakeProgress(const TranslatableString &title, const TranslatableString &message, unsigned flags=(ProgressShowStop|ProgressShowCancel), const TranslatableString &remainingLabelText={})
Create and display a progress dialog.
Definition: BasicUI.h:294

References BasicUI::MakeProgress(), BasicUI::ProgressShowCancel, and XO().

Referenced by audacity::cloud::audiocom::sync::OpenProjectFromCloud(), and audacity::cloud::audiocom::sync::SyncCloudProject().

Here is the call graph for this function:
Here is the caller graph for this function: