mirror of
https://github.com/cookiengineer/audacity
synced 2025-05-04 09:39:42 +02:00
... Should have no effect on generated code, except perhaps some slight faster virtual function calls. Mostly useful as documentation of design intent. Tried to mark every one of our classes that inherits from another, or is a base for others, or has abstract virtual functions, and a few others besides.
62 lines
1.1 KiB
C++
62 lines
1.1 KiB
C++
/**********************************************************************
|
|
|
|
Audacity: A Digital Audio Editor
|
|
|
|
DeviceChange.h
|
|
|
|
Leland Lucius
|
|
|
|
**********************************************************************/
|
|
|
|
#ifndef __AUDACITY_DEVICECHANGE_H__
|
|
#define __AUDACITY_DEVICECHANGE_H__
|
|
|
|
#include "Audacity.h"
|
|
#include "Experimental.h"
|
|
|
|
#if defined(EXPERIMENTAL_DEVICE_CHANGE_HANDLER)
|
|
|
|
#if defined(__WXMSW__) || defined(__WXMAC__) || defined(HAVE_LIBUDEV_H)
|
|
#define HAVE_DEVICE_CHANGE
|
|
#endif
|
|
|
|
#if defined(HAVE_DEVICE_CHANGE)
|
|
|
|
#include <wx/event.h>
|
|
#include <wx/timer.h>
|
|
|
|
class DeviceChangeInterface /* not final */
|
|
{
|
|
public:
|
|
virtual ~DeviceChangeInterface() {};
|
|
|
|
virtual bool SetHandler(wxEvtHandler *handler) = 0;
|
|
virtual void Enable(bool enable = true) = 0;
|
|
};
|
|
|
|
class DeviceChangeHandler : public wxEvtHandler
|
|
{
|
|
public:
|
|
DeviceChangeHandler();
|
|
virtual ~DeviceChangeHandler();
|
|
|
|
void Enable(bool enable = true);
|
|
|
|
virtual void DeviceChangeNotification() = 0;
|
|
|
|
private:
|
|
void OnChange(wxCommandEvent & evt);
|
|
void OnTimer(wxTimerEvent & evt);
|
|
|
|
DeviceChangeInterface *mListener;
|
|
wxTimer mTimer;
|
|
|
|
DECLARE_EVENT_TABLE()
|
|
};
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#endif
|