Audacity  3.0.3
ODDecodeTask.h
Go to the documentation of this file.
1 /**********************************************************************
2 
3  Audacity: A Digital Audio Editor
4 
5  ODDecodeTask.h
6 
7  Created by Michael Chinen (mchinen) on 8/10/08.
8  Audacity(R) is copyright (c) 1999-2008 Audacity Team.
9  License: GPL v2. See License.txt.
10 
11 ******************************************************************//*******************************************************************/
24 
25 
26 
27 
28 #ifndef __AUDACITY_ODDecodeTask__
29 #define __AUDACITY_ODDecodeTask__
30 
31 #include <vector>
32 #include "ODTask.h"
33 #include "../Internat.h"
34 class ODDecodeBlockFile;
35 class WaveTrack;
36 class ODFileDecoder;
37 
38 
40 class ODDecodeTask /* not final */ : public ODTask
41 {
42  public:
43  ODDecodeTask();
44  virtual ~ODDecodeTask(){};
45 
46  // NEW virtual:
47  virtual bool SeekingAllowed();
48 
51  void DemandTrackUpdate(WaveTrack* track, double seconds) override;
52 
54  const char* GetTaskName() override { return "ODDecodeTask"; }
55 
56  TranslatableString GetTip() override { return XO("Decoding Waveform"); }
57 
59  unsigned int GetODType() override { return eODNone; }
60 
62  virtual ODFileDecoder* CreateFileDecoder(const wxString & fileName)=0;
63 
69  // NEW virtuals:
71  virtual int GetNumFileDecoders();
72 
73 
74 protected:
75 
77  void CalculatePercentComplete() override;
78 
80  void DoSomeInternal() override;
81 
84  void Update() override;
85 
87  void OrderBlockFiles
88  (std::vector< std::weak_ptr< ODDecodeBlockFile > > &unorderedBlocks);
89 
90 
91  std::vector<std::weak_ptr<ODDecodeBlockFile>> mBlockFiles;
92  std::vector<std::unique_ptr<ODFileDecoder>> mDecoders;
93 
95 
96 };
97 
98 #endif
99 
100 
101 
TranslatableString
Holds a msgid for the translation catalog; may also bind format arguments.
Definition: TranslatableString.h:32
WaveTrack
A Track that contains audio waveform data.
Definition: WaveTrack.h:69
ODDecodeTask::CreateFileDecoder
virtual ODFileDecoder * CreateFileDecoder(const wxString &fileName)=0
Creates an ODFileDecoder that decodes a file of filetype the subclass handles.
ODDecodeTask::GetTaskName
const char * GetTaskName() override
Return the task name.
Definition: ODDecodeTask.h:54
ODDecodeTask::CalculatePercentComplete
void CalculatePercentComplete() override
recalculates the percentage complete.
Definition: ODDecodeTask.cpp:121
ODDecodeTask::GetNumFileDecoders
virtual int GetNumFileDecoders()
Definition: ODDecodeTask.cpp:294
ODDecodeBlockFile
An AliasBlockFile that references uncompressed data in an existing file.
Definition: ODDecodeBlockFile.h:37
ODTask::eODNone
@ eODNone
Definition: ODTask.h:43
XO
#define XO(s)
Definition: Internat.h:31
ODDecodeTask::DoSomeInternal
void DoSomeInternal() override
Computes and writes the data for one BlockFile if it still has a refcount.
Definition: ODDecodeTask.cpp:36
ODDecodeTask::mDecoders
std::vector< std::unique_ptr< ODFileDecoder > > mDecoders
Definition: ODDecodeTask.h:92
ODDecodeTask
A class representing a modular task to be used with the On-Demand structures.
Definition: ODDecodeTask.h:41
ODDecodeTask::GetTip
TranslatableString GetTip() override
Definition: ODDecodeTask.h:56
ODDecodeTask::Update
void Update() override
by default creates the order of the wavetrack to load.
Definition: ODDecodeTask.cpp:138
ODDecodeTask::ODDecodeTask
ODDecodeTask()
Creates a NEW task that decodes files.
Definition: ODDecodeTask.cpp:29
ODDecodeTask::OrderBlockFiles
void OrderBlockFiles(std::vector< std::weak_ptr< ODDecodeBlockFile > > &unorderedBlocks)
Orders the input as either On-Demand or default layered order.
Definition: ODDecodeTask.cpp:207
ODDecodeTask::GetOrCreateMatchingFileDecoder
virtual ODFileDecoder * GetOrCreateMatchingFileDecoder(ODDecodeBlockFile *blockFile)
Definition: ODDecodeTask.cpp:270
ODTask
A class representing a modular task to be used with the On-Demand structures.
Definition: ODTask.h:40
ODTask.h
ODFileDecoder
class to decode a particular file (one per file). Saves info such as filename and length (after the h...
Definition: ODDecodeBlockFile.h:194
ODDecodeTask::mMaxBlockFiles
int mMaxBlockFiles
Definition: ODDecodeTask.h:94
ODDecodeTask::DemandTrackUpdate
void DemandTrackUpdate(WaveTrack *track, double seconds) override
Definition: ODDecodeTask.cpp:257
ODDecodeTask::SeekingAllowed
virtual bool SeekingAllowed()
Definition: ODDecodeTask.cpp:128
ODDecodeTask::mBlockFiles
std::vector< std::weak_ptr< ODDecodeBlockFile > > mBlockFiles
Definition: ODDecodeTask.h:91
ODDecodeTask::~ODDecodeTask
virtual ~ODDecodeTask()
Definition: ODDecodeTask.h:44
ODDecodeTask::GetODType
unsigned int GetODType() override
Subclasses should override to return respective type.
Definition: ODDecodeTask.h:59