parent
3ccc963e53
commit
67d2b50a91
@ -66,6 +66,8 @@ OBSAdvAudioCtrl::OBSAdvAudioCtrl(QGridLayout *, obs_source_t *source_)
|
||||
this);
|
||||
mixersSignal.Connect(handler, "audio_mixers", OBSSourceMixersChanged,
|
||||
this);
|
||||
balChangedSignal.Connect(handler, "audio_balance",
|
||||
OBSSourceBalanceChanged, this);
|
||||
|
||||
hlayout = new QHBoxLayout();
|
||||
hlayout->setContentsMargins(0, 0, 0, 0);
|
||||
@ -351,6 +353,13 @@ void OBSAdvAudioCtrl::OBSSourceMixersChanged(void *param, calldata_t *calldata)
|
||||
Q_ARG(uint32_t, mixers));
|
||||
}
|
||||
|
||||
void OBSAdvAudioCtrl::OBSSourceBalanceChanged(void *param, calldata_t *calldata)
|
||||
{
|
||||
int balance = (float)calldata_float(calldata, "balance") * 100.0f;
|
||||
QMetaObject::invokeMethod(reinterpret_cast<OBSAdvAudioCtrl *>(param),
|
||||
"SourceBalanceChanged", Q_ARG(int, balance));
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------------------- */
|
||||
/* Qt event queue source callbacks */
|
||||
|
||||
@ -388,6 +397,13 @@ void OBSAdvAudioCtrl::SourceVolumeChanged(float value)
|
||||
volume->blockSignals(false);
|
||||
}
|
||||
|
||||
void OBSAdvAudioCtrl::SourceBalanceChanged(int value)
|
||||
{
|
||||
balance->blockSignals(true);
|
||||
balance->setValue(value);
|
||||
balance->blockSignals(false);
|
||||
}
|
||||
|
||||
void OBSAdvAudioCtrl::SourceSyncChanged(int64_t offset)
|
||||
{
|
||||
syncOffset->blockSignals(true);
|
||||
|
@ -55,6 +55,7 @@ private:
|
||||
OBSSignal mixersSignal;
|
||||
OBSSignal activateSignal;
|
||||
OBSSignal deactivateSignal;
|
||||
OBSSignal balChangedSignal;
|
||||
|
||||
static void OBSSourceActivated(void *param, calldata_t *calldata);
|
||||
static void OBSSourceDeactivated(void *param, calldata_t *calldata);
|
||||
@ -64,6 +65,7 @@ private:
|
||||
static void OBSSourceMonitoringTypeChanged(void *param,
|
||||
calldata_t *calldata);
|
||||
static void OBSSourceMixersChanged(void *param, calldata_t *calldata);
|
||||
static void OBSSourceBalanceChanged(void *param, calldata_t *calldata);
|
||||
|
||||
public:
|
||||
OBSAdvAudioCtrl(QGridLayout *layout, obs_source_t *source_);
|
||||
@ -82,6 +84,7 @@ public slots:
|
||||
void SourceSyncChanged(int64_t offset);
|
||||
void SourceMonitoringTypeChanged(int type);
|
||||
void SourceMixersChanged(uint32_t mixers);
|
||||
void SourceBalanceChanged(int balance);
|
||||
|
||||
void volumeChanged(double db);
|
||||
void percentChanged(int percent);
|
||||
|
@ -578,6 +578,10 @@ Source Signals
|
||||
|
||||
Called when the audio sync offset has changed.
|
||||
|
||||
**audio_balance** (ptr source, in out float balance)
|
||||
|
||||
Called when the audio balance has changed.
|
||||
|
||||
**audio_mixers** (ptr source, in out int mixers)
|
||||
|
||||
Called when the audio mixers have changed.
|
||||
|
@ -87,6 +87,7 @@ static const char *source_signals[] = {
|
||||
"void update_properties(ptr source)",
|
||||
"void update_flags(ptr source, int flags)",
|
||||
"void audio_sync(ptr source, int out int offset)",
|
||||
"void audio_balance(ptr source, in out float balance)",
|
||||
"void audio_mixers(ptr source, in out int mixers)",
|
||||
"void audio_monitoring(ptr source, int type)",
|
||||
"void audio_activate(ptr source)",
|
||||
@ -5134,10 +5135,19 @@ enum speaker_layout obs_source_get_speaker_layout(obs_source_t *source)
|
||||
|
||||
void obs_source_set_balance_value(obs_source_t *source, float balance)
|
||||
{
|
||||
if (!obs_source_valid(source, "obs_source_set_balance_value"))
|
||||
return;
|
||||
if (obs_source_valid(source, "obs_source_set_balance_value")) {
|
||||
struct calldata data;
|
||||
uint8_t stack[128];
|
||||
|
||||
source->balance = balance;
|
||||
calldata_init_fixed(&data, stack, sizeof(stack));
|
||||
calldata_set_ptr(&data, "source", source);
|
||||
calldata_set_float(&data, "balance", balance);
|
||||
|
||||
signal_handler_signal(source->context.signals, "audio_balance",
|
||||
&data);
|
||||
|
||||
source->balance = (float)calldata_float(&data, "balance");
|
||||
}
|
||||
}
|
||||
|
||||
float obs_source_get_balance_value(const obs_source_t *source)
|
||||
|
Loading…
x
Reference in New Issue
Block a user