static void
grl_optical_media_source_init (GrlOpticalMediaSource *source)
{
  source->priv = GRL_OPTICAL_MEDIA_SOURCE_GET_PRIVATE (source);

  source->priv->cancellable = g_cancellable_new ();
  source->priv->monitor = g_volume_monitor_get ();

  source->priv->monitor_signal_ids[0] = g_signal_connect (G_OBJECT (source->priv->monitor), "mount-added",
                                                          G_CALLBACK (on_g_volume_monitor_added_event), source);
  source->priv->monitor_signal_ids[1] = g_signal_connect (G_OBJECT (source->priv->monitor), "mount-changed",
                                                          G_CALLBACK (on_g_volume_monitor_changed_event), source);
  source->priv->monitor_signal_ids[2] = g_signal_connect (G_OBJECT (source->priv->monitor), "mount-removed",
                                                          G_CALLBACK (on_g_volume_monitor_removed_event), source);
}
static void
grl_optical_media_source_init (GrlOpticalMediaSource *source)
{
  const char * monitor_signals[NUM_MONITOR_SIGNALS] = {
    "volume-added",
    "volume-removed",
    "mount-added",
    "mount-removed",
  };
  guint i;

  source->priv = GRL_OPTICAL_MEDIA_SOURCE_GET_PRIVATE (source);

  source->priv->monitor = g_volume_monitor_get ();

  for (i = 0; i < G_N_ELEMENTS (monitor_signals); i++) {
    source->priv->monitor_signal_ids[i] = g_signal_connect (G_OBJECT (source->priv->monitor),
                                                            monitor_signals[i],
                                                            G_CALLBACK (on_g_volume_monitor_event), source);
  }
}