1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-06-19 01:20:04 +02:00
audacity/src/toolbars/DeviceToolBar.h

91 lines
1.8 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 wxImage;
class wxSize;
class wxPoint;
class wxChoice;
typedef struct DeviceSourceMap {
int deviceIndex;
int sourceIndex;
int hostIndex;
int totalSources;
int numChannels;
wxString sourceString;
wxString deviceString;
wxString hostString;
} DeviceSourceMap;
class DeviceToolBar:public ToolBar {
public:
DeviceToolBar();
virtual ~DeviceToolBar();
void Create(wxWindow * parent);
void RecreateTipWindows();
void UpdatePrefs();
virtual void Populate();
virtual void Repaint(wxDC *dc) {};
virtual void EnableDisableButtons();
void OnFocus(wxFocusEvent &event);
void OnCaptureKey(wxCommandEvent &event);
void OnChoice(wxCommandEvent & event);
private:
int ChangeHost();
void FillHostDevices();
void FillInputChannels();
void SetDevices(DeviceSourceMap *in, DeviceSourceMap *out);
void RegenerateTooltips();
wxBitmap *mPlayBitmap;
wxBitmap *mRecordBitmap;
wxChoice *mInput;
wxChoice *mOutput;
wxChoice *mInputChannels;
wxChoice *mHost;
std::vector<DeviceSourceMap> mInputDeviceSourceMaps;
std::vector<DeviceSourceMap> mOutputDeviceSourceMaps;
public:
DECLARE_CLASS(DeviceToolBar);
DECLARE_EVENT_TABLE();
};
#endif
// Indentation settings for Vim and Emacs and unique identifier for Arch, a
// version control system. Please do not modify past this point.
//
// Local Variables:
// c-basic-offset: 3
// indent-tabs-mode: nil
// End:
//
// vim: et sts=3 sw=3
// arch-tag: 3acba542-52ae-44eb-b0b3-e0645587b5c0