59 lines
1.3 KiB
C++
59 lines
1.3 KiB
C++
/*!********************************************************************
|
|
Audacity: A Digital Audio Editor
|
|
|
|
@file UpdateManager.h
|
|
@brief Declare a class that handles managing of updates.
|
|
|
|
Anton Gerasimov
|
|
**********************************************************************/
|
|
#pragma once
|
|
|
|
#include "VersionId.h"
|
|
#include "VersionPatch.h"
|
|
#include "UpdateDataParser.h"
|
|
|
|
#include "Prefs.h"
|
|
|
|
#include <wx/string.h>
|
|
#include <wx/event.h>
|
|
#include <wx/timer.h>
|
|
|
|
namespace UpdatesCheckingSettings {
|
|
extern AUDACITY_DLL_API BoolSetting DefaultUpdatesCheckingFlag;
|
|
}
|
|
|
|
/// A class that managing of updates.
|
|
/**
|
|
Opt-in request and show update dialog by the scheduled time.
|
|
Have a built-in check that allows avoiding multiplying update notifications
|
|
when multiple Audacity windows are shown.
|
|
*/
|
|
class UpdateManager final : public wxEvtHandler
|
|
{
|
|
public:
|
|
UpdateManager();
|
|
~UpdateManager();
|
|
|
|
static UpdateManager& GetInstance();
|
|
static void Start();
|
|
|
|
void GetUpdates();
|
|
|
|
VersionPatch GetVersionPatch() const;
|
|
|
|
private:
|
|
UpdateDataParser mUpdateDataParser;
|
|
VersionPatch mVersionPatch;
|
|
|
|
wxTimer mTimer;
|
|
const int mUpdateCheckingInterval;
|
|
|
|
void OnTimer(wxTimerEvent& event);
|
|
|
|
/// Scheduling update time for avoiding multiplying update notifications.
|
|
bool IsTimeForUpdatesChecking();
|
|
|
|
public:
|
|
DECLARE_EVENT_TABLE()
|
|
};
|