Example #1
0
static void
read_mastervol(GtkScaleButton *button, gdouble value, gpointer user_data)
{
  playdeck_t *pd = user_data;
  extern prop_t *prop_mastervol; /* A bit ugly.  We could use
				    prop_get_by_name(), but this is
				    easier */
  
  value = (value - 1) * 75;
  prop_set_float_ex(prop_mastervol, pd->sub_volume, value, 0);
}
Example #2
0
static void
update_value(glw_slider_t *s, float v, int how)
{
  v = GLW_MAX(0, GLW_MIN(1.0, v));

  if(s->p != NULL)
    prop_set_float_ex(s->p, NULL, v * (s->max - s->min) + s->min, how);
  else {
    s->value = v;
    if(s->bound_widget != NULL) {
      glw_scroll_t gs;
      gs.value = s->value;
      glw_signal0(s->bound_widget, GLW_SIGNAL_SCROLL, &gs);
    }
  }
}
Example #3
0
static gboolean 
slider_updated(GtkRange *range, GtkScrollType scroll,
	       gdouble value, gpointer user_data)
{
  playdeck_t *pd = user_data;
  prop_t *p;

  pd->pos_grabbed = 0;

  p = prop_get_by_name(PNVEC("global", "media", "current", "currenttime"),
		       1, NULL);
  if(p != NULL) {
    prop_set_float_ex(p, pd->sub_pos, value, 0);
    prop_ref_dec(p);
  }
  return FALSE;
}
Example #4
0
/**
 * Sink input updated, reflect master volume and mute status into
 * showtime's properties.
 */
static void
update_sink_input_info(pa_context *c, const pa_sink_input_info *i, 
		       int eol, void *userdata)
{
  pa_audio_mode_t *pam = (pa_audio_mode_t *)userdata;
  int n;
  pa_volume_t max = PA_VOLUME_MUTED;

  if(i == NULL)
    return;

  for(n = 0; n < i->volume.channels; n++) {
    if(i->volume.values[n] > max)
      max = i->volume.values[n];
  }

  pam->mastervol = max;
  pam->muted = !!i->mute;

  prop_set_float_ex(prop_mastervol, pam->sub_mvol, 
		    pa_sw_volume_to_dB(pam->mastervol), 0);
  prop_set_int_ex(prop_mastermute, pam->sub_mute, pam->muted);
}
Example #5
0
void
mp_set_current_time(media_pipe_t *mp, int64_t ts, int epoch, int64_t delta)
{
  if(ts == PTS_UNSET)
    return;

  ts -= delta;

  hts_mutex_lock(&mp->mp_mutex);

  if(epoch == mp->mp_epoch) {

    prop_set_float_ex(mp->mp_prop_currenttime, mp->mp_sub_currenttime,
		      ts / 1000000.0);

    event_ts_t *ets = event_create(EVENT_CURRENT_TIME, sizeof(event_ts_t));
    ets->ts = ts;
    ets->epoch = epoch;
    mp->mp_seek_base = ts;
    mp_enqueue_event_locked(mp, &ets->h);
    event_release(&ets->h);
  }
  hts_mutex_unlock(&mp->mp_mutex);
}