Example #1
0
void QVolumeSlider::mouseMoveEvent(QMouseEvent *event)
{
  event->accept();

  float vol_tmp = volume_dB + (event->globalX() - starting_point.x())*ACCELERATION;

  // limit possible values
  vol_tmp = std::min(vol_tmp, UPPERLIMIT);
  vol_tmp = std::max(vol_tmp, LOWERLIMIT);

  // display volume as number
  setText(QString().setNum((int)(vol_tmp + 0.5f)));

  emit signal_volume_changed(vol_tmp); // TODO: dB or linear??

  // store reference point for mouse motion
  starting_point = event->globalPos();
}
Example #2
0
static void fader_source_volume_changed(void *vptr, calldata_t *calldata)
{
	struct obs_fader *fader = (struct obs_fader *) vptr;

	pthread_mutex_lock(&fader->mutex);

	if (fader->ignore_next_signal) {
		fader->ignore_next_signal = false;
		pthread_mutex_unlock(&fader->mutex);
		return;
	}

	signal_handler_t *sh = fader->signals;
	const float mul      = (float)calldata_float(calldata, "volume");
	const float db       = mul_to_db(mul);
	fader->cur_db        = db;

	pthread_mutex_unlock(&fader->mutex);

	signal_volume_changed(sh, fader, db);
}