1 /**********************************************************************
2 
3   Audacity: A Digital Audio Editor
4 
5   Repeat.h
6 
7   Dominic Mazzoni
8 
9 **********************************************************************/
10 
11 #ifndef __AUDACITY_EFFECT_REPEAT__
12 #define __AUDACITY_EFFECT_REPEAT__
13 
14 #include "Effect.h"
15 
16 class wxTextCtrl;
17 class ShuttleGui;
18 
19 class wxStaticText;
20 
21 class EffectRepeat final : public Effect
22 {
23 public:
24    static const ComponentInterfaceSymbol Symbol;
25 
26    EffectRepeat();
27    virtual ~EffectRepeat();
28 
29    // ComponentInterface implementation
30 
31    ComponentInterfaceSymbol GetSymbol() override;
32    TranslatableString GetDescription() override;
33    ManualPageID ManualPage() override;
34 
35    // EffectDefinitionInterface implementation
36 
37    EffectType GetType() override;
38 
39    // EffectClientInterface implementation
40 
41    bool DefineParams( ShuttleParams & S ) override;
42    bool GetAutomationParameters(CommandParameters & parms) override;
43    bool SetAutomationParameters(CommandParameters & parms) override;
44 
45    // Effect implementation
46 
47    bool Process() override;
48    void PopulateOrExchange(ShuttleGui & S) override;
49    bool TransferDataToWindow() override;
50    bool TransferDataFromWindow() override;
51 
52 private:
53    // EffectRepeat implementation
54 
55    void OnRepeatTextChange(wxCommandEvent & evt);
56    void DisplayNewTime();
57 
58 private:
59    int repeatCount;
60 
61    wxTextCtrl   *mRepeatCount;
62    wxStaticText *mCurrentTime;
63    wxStaticText *mTotalTime;
64 
65    DECLARE_EVENT_TABLE()
66 };
67 
68 #endif
69 
70