forked from mia/Aegisub
Set the audio volume from the slider when audio is opened
Originally committed to SVN as r6711.
This commit is contained in:
parent
3c31c1a17a
commit
0a64763f2f
2 changed files with 13 additions and 4 deletions
|
@ -81,6 +81,7 @@ AudioBox::AudioBox(wxWindow *parent, agi::Context *context)
|
|||
: wxSashWindow(parent, -1, wxDefaultPosition, wxDefaultSize, wxSW_3D | wxCLIP_CHILDREN)
|
||||
, controller(context->audioController)
|
||||
, context(context)
|
||||
, audio_open_connection(controller->AddAudioOpenListener(&AudioBox::OnAudioOpen, this))
|
||||
, panel(new wxPanel(this, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL | wxBORDER_RAISED))
|
||||
, audioDisplay(new AudioDisplay(panel, context->audioController, context))
|
||||
, HorizontalZoom(new wxSlider(panel, Audio_Horizontal_Zoom, OPT_GET("Audio/Zoom/Horizontal")->GetInt(), -50, 30, wxDefaultPosition, wxSize(-1, 20), wxSL_VERTICAL|wxSL_BOTH))
|
||||
|
@ -139,7 +140,6 @@ AudioBox::AudioBox(wxWindow *parent, agi::Context *context)
|
|||
|
||||
audioDisplay->SetZoomLevel(-HorizontalZoom->GetValue());
|
||||
audioDisplay->SetAmplitudeScale(pow(mid(1, VerticalZoom->GetValue(), 100) / 50.0, 3));
|
||||
controller->SetVolume(pow(mid(1, VolumeBar->GetValue(), 100) / 50.0, 3));
|
||||
}
|
||||
|
||||
AudioBox::~AudioBox() { }
|
||||
|
@ -230,6 +230,10 @@ void AudioBox::OnVerticalLink(agi::OptionValue const& opt) {
|
|||
VolumeBar->Enable(!opt.GetBool());
|
||||
}
|
||||
|
||||
void AudioBox::OnAudioOpen() {
|
||||
controller->SetVolume(pow(mid(1, VolumeBar->GetValue(), 100) / 50.0, 3));
|
||||
}
|
||||
|
||||
void AudioBox::ShowKaraokeBar(bool show) {
|
||||
wxSizer *panel_sizer = panel->GetSizer();
|
||||
if (panel_sizer->IsShown(context->karaoke) == show) return;
|
||||
|
|
|
@ -38,6 +38,8 @@
|
|||
#include <wx/sashwin.h>
|
||||
#endif
|
||||
|
||||
#include <libaegisub/signal.h>
|
||||
|
||||
namespace agi {
|
||||
struct Context;
|
||||
class OptionValue;
|
||||
|
@ -62,6 +64,8 @@ class AudioBox : public wxSashWindow {
|
|||
/// Project context this operates on
|
||||
agi::Context *context;
|
||||
|
||||
agi::signal::Connection audio_open_connection;
|
||||
|
||||
|
||||
/// Panel containing the children
|
||||
wxPanel *panel;
|
||||
|
@ -81,12 +85,13 @@ class AudioBox : public wxSashWindow {
|
|||
// Mouse wheel zoom accumulator
|
||||
int mouse_zoom_accum;
|
||||
|
||||
void OnAudioOpen();
|
||||
void OnHorizontalZoom(wxScrollEvent &event);
|
||||
void OnMouseWheel(wxMouseEvent &evt);
|
||||
void OnSashDrag(wxSashEvent &event);
|
||||
void OnVerticalLink(agi::OptionValue const& opt);
|
||||
void OnVerticalZoom(wxScrollEvent &event);
|
||||
void OnVolume(wxScrollEvent &event);
|
||||
void OnVerticalLink(agi::OptionValue const& opt);
|
||||
void OnSashDrag(wxSashEvent &event);
|
||||
void OnMouseWheel(wxMouseEvent &evt);
|
||||
|
||||
public:
|
||||
AudioBox(wxWindow *parent, agi::Context *context);
|
||||
|
|
Loading…
Reference in a new issue