Audacity  3.0.3
ODComputeSummaryTask.h
Go to the documentation of this file.
1 /**********************************************************************
2 
3  Audacity: A Digital Audio Editor
4 
5  ODComputeSummaryTask.h
6 
7  Created by Michael Chinen (mchinen) on 6/8/08.
8  Audacity(R) is copyright (c) 1999-2008 Audacity Team.
9  License: GPL v2. See License.txt.
10 
11 ******************************************************************//*******************************************************************/
18 
19 #ifndef __AUDACITY_ODComputeSummaryTask__
20 #define __AUDACITY_ODComputeSummaryTask__
21 
22 #include <vector>
23 #include "ODTask.h"
24 #include "../Internat.h"
26 class WaveTrack;
27 
29 class ODComputeSummaryTask final : public ODTask
30 {
31  public:
32 
33  // Constructor / Destructor
34 
37  virtual ~ODComputeSummaryTask(){};
38 
39  std::unique_ptr<ODTask> Clone() const override;
40 
42  unsigned int GetODType() override { return eODPCMSummary; }
43 
45  const char* GetTaskName() override { return "ODComputeSummaryTask"; }
46 
48  { return XO("Import complete. Calculating waveform"); }
49 
50  bool UsesCustomWorkUntilPercentage() override { return true; }
52 
54  void Terminate() override;
55 
56 protected:
58  void CalculatePercentComplete() override;
59 
61  void DoSomeInternal() override;
62 
65  void Update() override;
66 
68  void OrderBlockFiles
69  (std::vector< std::weak_ptr< ODPCMAliasBlockFile > > &unorderedBlocks);
70 
72  void MarkUpdateRan();
73  bool HasUpdateRan();
74 
75  //mBlockFiles is touched on several threads- the OD terminate thread, and the task thread, so we need to mutex it.
77  std::vector< std::weak_ptr< ODPCMAliasBlockFile > > mBlockFiles;
81 };
82 
83 #endif
84 
TranslatableString
Holds a msgid for the translation catalog; may also bind format arguments.
Definition: TranslatableString.h:32
ODPCMAliasBlockFile
An AliasBlockFile that references uncompressed data in an existing file.
Definition: ODPCMAliasBlockFile.h:43
ODComputeSummaryTask
A class representing a modular task to be used with the On-Demand structures.
Definition: ODComputeSummaryTask.h:30
ODComputeSummaryTask::OrderBlockFiles
void OrderBlockFiles(std::vector< std::weak_ptr< ODPCMAliasBlockFile > > &unorderedBlocks)
Orders the input as either On-Demand or default layered order.
Definition: ODComputeSummaryTask.cpp:257
WaveTrack
A Track that contains audio waveform data.
Definition: WaveTrack.h:69
ODComputeSummaryTask::GetTip
TranslatableString GetTip() override
Definition: ODComputeSummaryTask.h:47
ODComputeSummaryTask::Clone
std::unique_ptr< ODTask > Clone() const override
Definition: ODComputeSummaryTask.cpp:38
XO
#define XO(s)
Definition: Internat.h:31
ODComputeSummaryTask::GetODType
unsigned int GetODType() override
Subclasses should override to return respective type.
Definition: ODComputeSummaryTask.h:42
ODComputeSummaryTask::mBlockFiles
std::vector< std::weak_ptr< ODPCMAliasBlockFile > > mBlockFiles
Definition: ODComputeSummaryTask.h:77
ODComputeSummaryTask::~ODComputeSummaryTask
virtual ~ODComputeSummaryTask()
Definition: ODComputeSummaryTask.h:37
ODComputeSummaryTask::UsesCustomWorkUntilPercentage
bool UsesCustomWorkUntilPercentage() override
Definition: ODComputeSummaryTask.h:50
ODComputeSummaryTask::CalculatePercentComplete
void CalculatePercentComplete() override
recalculates the percentage complete.
Definition: ODComputeSummaryTask.cpp:168
ODComputeSummaryTask::ODComputeSummaryTask
ODComputeSummaryTask()
Constructs an ODTask.
Definition: ODComputeSummaryTask.cpp:32
ODComputeSummaryTask::ComputeNextWorkUntilPercentageComplete
float ComputeNextWorkUntilPercentageComplete() override
Definition: ODComputeSummaryTask.cpp:139
ODComputeSummaryTask::mMaxBlockFiles
int mMaxBlockFiles
Definition: ODComputeSummaryTask.h:78
ODComputeSummaryTask::HasUpdateRan
bool HasUpdateRan()
Definition: ODComputeSummaryTask.cpp:159
ODTask
A class representing a modular task to be used with the On-Demand structures.
Definition: ODTask.h:40
ODTask.h
ODLock
Definition: ODTaskThread.h:89
ODComputeSummaryTask::mHasUpdateRan
bool mHasUpdateRan
Definition: ODComputeSummaryTask.h:80
ODComputeSummaryTask::mBlockFilesMutex
ODLock mBlockFilesMutex
Definition: ODComputeSummaryTask.h:76
ODComputeSummaryTask::Update
void Update() override
Definition: ODComputeSummaryTask.cpp:182
ODComputeSummaryTask::Terminate
void Terminate() override
releases memory that the ODTask owns. Subclasses should override.
Definition: ODComputeSummaryTask.cpp:48
ODTask::eODPCMSummary
@ eODPCMSummary
Definition: ODTask.h:47
ODComputeSummaryTask::MarkUpdateRan
void MarkUpdateRan()
tells us whether or not Update has been run at least once.
Definition: ODComputeSummaryTask.cpp:152
ODComputeSummaryTask::GetTaskName
const char * GetTaskName() override
Return the task name.
Definition: ODComputeSummaryTask.h:45
ODComputeSummaryTask::DoSomeInternal
void DoSomeInternal() override
Computes and writes the data for one BlockFile if it still has a refcount.
Definition: ODComputeSummaryTask.cpp:58
ODComputeSummaryTask::mHasUpdateRanMutex
ODLock mHasUpdateRanMutex
Definition: ODComputeSummaryTask.h:79