1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-08-01 00:19:27 +02:00
audacity/src/toolbars/DeviceToolBar.h
Paul Licameli 7ef5ebc97a Send event, so that DeviceManager does not depend on DeviceToolBar...
... freeing it and DevicePrefs from cycles
2019-06-10 21:55:34 -04:00

88 lines
2.0 KiB
C++

/**********************************************************************
Audacity: A Digital Audio Editor
DeviceToolbar.h
Dominic Mazzoni
**********************************************************************/
#ifndef __AUDACITY_DEVICE_TOOLBAR__
#define __AUDACITY_DEVICE_TOOLBAR__
#include <vector>
#include "ToolBar.h"
class wxSize;
class wxPoint;
class wxChoice;
struct DeviceSourceMap;
class AudacityProject;
class DeviceToolBar final : public ToolBar {
public:
DeviceToolBar();
virtual ~DeviceToolBar();
static DeviceToolBar &Get( AudacityProject &project );
static const DeviceToolBar &Get( const AudacityProject &project );
void Create(wxWindow * parent) override;
void UpdatePrefs() override;
void UpdateSelectedPrefs( int ) override;
void DeinitChildren();
void Populate() override;
void Repaint(wxDC * WXUNUSED(dc)) override {};
void EnableDisableButtons() override;
bool Layout() override;
void OnFocus(wxFocusEvent &event);
void OnCaptureKey(wxCommandEvent &event);
void OnChoice(wxCommandEvent & event);
/// When the prefs don't exist this value is used.
/// 883 takes a complete row in the default initial size of Audacity.
int GetInitialWidth() override{ return 883; }
int GetMinToolbarWidth() override { return 350; }
void ShowInputDialog();
void ShowOutputDialog();
void ShowHostDialog();
void ShowChannelsDialog();
void RefillCombos();
private:
void OnRescannedDevices( wxCommandEvent& );
int ChangeHost();
void ChangeDevice(bool isInput);
void FillHosts();
void FillHostDevices();
void FillInputChannels();
void SetDevices(const DeviceSourceMap *in, const DeviceSourceMap *out);
void RepositionCombos();
void SetNames();
void RegenerateTooltips() override;
void ShowComboDialog(wxChoice *combo, const wxString &title);
wxChoice *mInput;
wxChoice *mOutput;
wxChoice *mInputChannels;
wxChoice *mHost;
public:
DECLARE_CLASS(DeviceToolBar)
DECLARE_EVENT_TABLE()
};
#endif