Exemplo n.º 1
0
static void
bt_cmd_pattern_get_property (GObject * const object, const guint property_id,
    GValue * const value, GParamSpec * const pspec)
{
  const BtCmdPattern *const self = BT_CMD_PATTERN (object);

  return_if_disposed ();
  switch (property_id) {
    case CMD_PATTERN_SONG:
      g_value_set_object (value, self->priv->song);
      break;
    case CMD_PATTERN_NAME:
      g_value_set_string (value, self->priv->name);
      break;
    case CMD_PATTERN_MACHINE:
      g_value_set_object (value, self->priv->machine);
      break;
    case CMD_PATTERN_COMMAND:
      g_value_set_enum (value, self->priv->cmd);
      break;
    default:
      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
      break;
  }
}
Exemplo n.º 2
0
static void
bt_edit_application_set_property (GObject * object, guint property_id,
    const GValue * value, GParamSpec * pspec)
{
  BtEditApplication *self = BT_EDIT_APPLICATION (object);
  return_if_disposed ();
  switch (property_id) {
    case EDIT_APPLICATION_SONG:
#ifdef USE_DEBUG
      if (G_OBJECT_REF_COUNT (self->priv->song) != 1) {
        GST_DEBUG ("old song: %" G_OBJECT_REF_COUNT_FMT,
            G_OBJECT_LOG_REF_COUNT (self->priv->song));
      }
#endif
      g_object_try_unref (self->priv->song);
      self->priv->song = BT_SONG (g_value_dup_object (value));
      GST_DEBUG ("new song: %" G_OBJECT_REF_COUNT_FMT,
          G_OBJECT_LOG_REF_COUNT (self->priv->song));
      break;
    case EDIT_APPLICATION_UNSAVED:
      self->priv->unsaved = g_value_get_boolean (value);
      GST_INFO ("set the unsaved flag to %d for the song", self->priv->unsaved);
      break;
    default:
      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
      break;
  }
}
Exemplo n.º 3
0
static void
bt_cmd_pattern_set_property (GObject * const object, const guint property_id,
    const GValue * const value, GParamSpec * const pspec)
{
  BtCmdPattern *const self = BT_CMD_PATTERN (object);

  return_if_disposed ();
  switch (property_id) {
    case CMD_PATTERN_SONG:
      self->priv->song = BT_SONG (g_value_get_object (value));
      g_object_try_weak_ref (self->priv->song);
      //GST_DEBUG("set the song for pattern: %p",self->priv->song);
      break;
    case CMD_PATTERN_NAME:
      g_free (self->priv->name);
      self->priv->name = g_value_dup_string (value);
      GST_DEBUG ("set the display name for the pattern: '%s'",
          self->priv->name);
      break;
    case CMD_PATTERN_MACHINE:
      self->priv->machine = BT_MACHINE (g_value_get_object (value));
      g_object_try_weak_ref (self->priv->machine);
      break;
    case CMD_PATTERN_COMMAND:
      self->priv->cmd = g_value_get_enum (value);
      GST_DEBUG ("set the cmd for the pattern: %d", self->priv->cmd);
      break;
    default:
      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
      break;
  }
}
Exemplo n.º 4
0
static void
bt_main_pages_get_property (GObject * object, guint property_id, GValue * value,
    GParamSpec * pspec)
{
  BtMainPages *self = BT_MAIN_PAGES (object);
  return_if_disposed ();
  switch (property_id) {
    case MAIN_PAGES_MACHINES_PAGE:
      g_value_set_object (value, self->priv->machines_page);
      break;
    case MAIN_PAGES_PATTERNS_PAGE:
      g_value_set_object (value, self->priv->patterns_page);
      break;
    case MAIN_PAGES_SEQUENCE_PAGE:
      g_value_set_object (value, self->priv->sequence_page);
      break;
    case MAIN_PAGES_WAVES_PAGE:
      g_value_set_object (value, self->priv->waves_page);
      break;
    case MAIN_PAGES_INFO_PAGE:
      g_value_set_object (value, self->priv->info_page);
      break;
    default:
      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
      break;
  }
}
Exemplo n.º 5
0
static void
bt_settings_dialog_dispose (GObject * object)
{
  BtSettingsDialog *self = BT_SETTINGS_DIALOG (object);
  return_if_disposed ();
  self->priv->dispose_has_run = TRUE;

  GST_DEBUG ("!!!! self=%p", self);
  g_object_unref (self->priv->app);

  G_OBJECT_CLASS (bt_settings_dialog_parent_class)->dispose (object);
}
Exemplo n.º 6
0
static void
bt_cmd_pattern_dispose (GObject * const object)
{
  const BtCmdPattern *const self = BT_CMD_PATTERN (object);

  return_if_disposed ();
  self->priv->dispose_has_run = TRUE;

  g_object_try_weak_unref (self->priv->machine);
  g_object_try_weak_unref (self->priv->song);

  G_OBJECT_CLASS (bt_cmd_pattern_parent_class)->dispose (object);
}
Exemplo n.º 7
0
static void
bt_main_pages_dispose (GObject * object)
{
  BtMainPages *self = BT_MAIN_PAGES (object);
  return_if_disposed ();
  self->priv->dispose_has_run = TRUE;

  GST_DEBUG ("!!!! self=%p", self);

  g_object_unref (self->priv->app);
  // this disposes the pages for us
  G_OBJECT_CLASS (bt_main_pages_parent_class)->dispose (object);
}
Exemplo n.º 8
0
static void
bt_crash_recover_dialog_dispose (GObject * object)
{
  BtCrashRecoverDialog *self = BT_CRASH_RECOVER_DIALOG (object);

  return_if_disposed ();
  self->priv->dispose_has_run = TRUE;

  GST_DEBUG ("!!!! self=%p", self);
  g_object_unref (self->priv->app);

  G_OBJECT_CLASS (bt_crash_recover_dialog_parent_class)->dispose (object);
}
Exemplo n.º 9
0
static void
bt_song_info_get_property (GObject * const object, const guint property_id,
    GValue * const value, GParamSpec * const pspec)
{
  const BtSongInfo *const self = BT_SONG_INFO (object);
  return_if_disposed ();
  switch (property_id) {
    case SONG_INFO_SONG:
      g_value_set_object (value, self->priv->song);
      break;
    case SONG_INFO_TAGLIST:
      g_value_set_pointer (value, gst_tag_list_copy (self->priv->taglist));
      break;
    case SONG_INFO_FILE_NAME:
      g_value_set_string (value, self->priv->file_name);
      break;
    case SONG_INFO_INFO:
      g_value_set_string (value, self->priv->info);
      break;
    case SONG_INFO_NAME:
      g_value_set_string (value, self->priv->name);
      break;
    case SONG_INFO_GENRE:
      g_value_set_string (value, self->priv->genre);
      break;
    case SONG_INFO_AUTHOR:
      g_value_set_string (value, self->priv->author);
      break;
    case SONG_INFO_BPM:
      g_value_set_ulong (value, self->priv->beats_per_minute);
      break;
    case SONG_INFO_TPB:
      g_value_set_ulong (value, self->priv->ticks_per_beat);
      break;
    case SONG_INFO_BARS:
      g_value_set_ulong (value, self->priv->bars);
      break;
    case SONG_INFO_CREATE_DTS:
      g_value_set_string (value, self->priv->create_dts);
      break;
    case SONG_INFO_CHANGE_DTS:
      g_value_set_string (value, self->priv->change_dts);
      break;
    case SONG_INFO_TICK_DURATION:
      g_value_set_uint64 (value, self->priv->tick_duration);
      break;
    default:
      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
      break;
  }
}
Exemplo n.º 10
0
static void
btic_device_dispose (GObject * const object)
{
  const BtIcDevice *const self = BTIC_DEVICE (object);

  return_if_disposed ();
  self->priv->dispose_has_run = TRUE;

  GST_DEBUG ("!!!! self=%p", self);

  GST_DEBUG ("  chaining up");
  G_OBJECT_CLASS (btic_device_parent_class)->dispose (object);
  GST_DEBUG ("  done");
}
Exemplo n.º 11
0
static void
bt_song_info_dispose (GObject * const object)
{
  const BtSongInfo *const self = BT_SONG_INFO (object);

  return_if_disposed ();
  self->priv->dispose_has_run = TRUE;

  GST_DEBUG ("!!!! self=%p", self);
  g_object_try_weak_unref (self->priv->song);
  gst_tag_list_unref (self->priv->taglist);

  G_OBJECT_CLASS (bt_song_info_parent_class)->dispose (object);
}
Exemplo n.º 12
0
static void
bt_settings_dialog_set_property (GObject * object, guint property_id,
    const GValue * value, GParamSpec * pspec)
{
  BtSettingsDialog *self = BT_SETTINGS_DIALOG (object);
  return_if_disposed ();
  switch (property_id) {
    case PROP_PAGE:
      select_page (self, g_value_get_enum (value));
      break;
    default:
      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
      break;
  }
}
Exemplo n.º 13
0
static void
bt_crash_recover_dialog_set_property (GObject * object, guint property_id,
    const GValue * value, GParamSpec * pspec)
{
  BtCrashRecoverDialog *self = BT_CRASH_RECOVER_DIALOG (object);
  return_if_disposed ();
  switch (property_id) {
    case CRASH_RECOVER_DIALOG_ENTRIES:
      self->priv->entries = g_value_get_pointer (value);
      break;
    default:
      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
      break;
  }
}
Exemplo n.º 14
0
static void
bt_wavelevel_dispose (GObject * const object)
{
  const BtWavelevel *const self = BT_WAVELEVEL (object);

  return_if_disposed ();
  self->priv->dispose_has_run = TRUE;

  GST_DEBUG ("!!!! self=%p", self);

  g_object_try_weak_unref (self->priv->song);
  g_object_try_weak_unref (self->priv->wave);

  G_OBJECT_CLASS (bt_wavelevel_parent_class)->dispose (object);
}
Exemplo n.º 15
0
static void
btic_control_dispose (GObject * const object)
{
  const BtIcControl *const self = BTIC_CONTROL (object);

  return_if_disposed ();
  self->priv->dispose_has_run = TRUE;

  GST_DEBUG ("!!!! self=%p", self);

  g_object_try_weak_unref (self->priv->device);

  GST_DEBUG ("  chaining up");
  G_OBJECT_CLASS (btic_control_parent_class)->dispose (object);
  GST_DEBUG ("  done");
}
Exemplo n.º 16
0
static void
bt_main_page_info_dispose (GObject * object)
{
  BtMainPageInfo *self = BT_MAIN_PAGE_INFO (object);
  return_if_disposed ();
  self->priv->dispose_has_run = TRUE;

  GST_DEBUG ("!!!! self=%p", self);

  g_object_try_unref (self->priv->song_info);

  g_object_unref (self->priv->app);

  GST_DEBUG ("  chaining up");
  G_OBJECT_CLASS (bt_main_page_info_parent_class)->dispose (object);
}
static void
bt_settings_page_interaction_controller_set_property (GObject * const object,
    const guint property_id, const GValue * const value,
    GParamSpec * const pspec)
{
  BtSettingsPageInteractionController *self =
      BT_SETTINGS_PAGE_INTERACTION_CONTROLLER (object);
  return_if_disposed ();
  switch (property_id) {
    case PROP_DEVICE:
      select_device (self, BTIC_DEVICE (g_value_get_object (value)));
      break;
    default:
      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
      break;
  }
}
Exemplo n.º 18
0
static void
bt_wavetable_set_property (GObject * const object, const guint property_id,
    const GValue * const value, GParamSpec * const pspec)
{
  const BtWavetable *const self = BT_WAVETABLE (object);
  return_if_disposed ();
  switch (property_id) {
    case WAVETABLE_SONG:
      self->priv->song = BT_SONG (g_value_get_object (value));
      g_object_try_weak_ref (self->priv->song);
      //GST_DEBUG("set the song for wavetable: %p",self->priv->song);
      break;
    default:
      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
      break;
  }
}
Exemplo n.º 19
0
static void
bt_playback_controller_socket_dispose (GObject * object)
{
  BtPlaybackControllerSocket *self = BT_PLAYBACK_CONTROLLER_SOCKET (object);

  return_if_disposed ();
  self->priv->dispose_has_run = TRUE;

  GST_DEBUG ("!!!! self=%p", self);
  g_object_try_weak_unref (self->priv->gain);
  g_object_try_weak_unref (self->priv->sequence);
  g_object_try_weak_unref (self->priv->song_info);
  g_object_try_weak_unref (self->priv->app);

  master_connection_close (self);

  G_OBJECT_CLASS (bt_playback_controller_socket_parent_class)->dispose (object);
}
Exemplo n.º 20
0
static void
btic_device_set_property (GObject * const object, const guint property_id,
    const GValue * const value, GParamSpec * const pspec)
{
  const BtIcDevice *const self = BTIC_DEVICE (object);
  return_if_disposed ();
  switch (property_id) {
    case DEVICE_UDI:
      self->priv->udi = g_value_dup_string (value);
      break;
    case DEVICE_NAME:
      self->priv->name = g_value_dup_string (value);
      break;
    default:
      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
      break;
  }
}
Exemplo n.º 21
0
static void
btic_midi_device_get_property (GObject * const object, const guint property_id,
    GValue * const value, GParamSpec * const pspec)
{
  const BtIcMidiDevice *const self = BTIC_MIDI_DEVICE (object);
  return_if_disposed ();
  switch (property_id) {
    case DEVICE_DEVNODE:
      g_value_set_string (value, self->priv->devnode);
      break;
    case DEVICE_CONTROLCHANGE:
      g_value_set_string (value, self->priv->control_change);
      break;
    default:
      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
      break;
  }
}
Exemplo n.º 22
0
static void
bt_edit_application_dispose (GObject * object)
{
  BtEditApplication *self = BT_EDIT_APPLICATION (object);

  return_if_disposed ();
  self->priv->dispose_has_run = TRUE;

  /* This should destroy the window as this is a child of the app.
   * Problem 1: On the other hand, this *NEVER* gets called as long as the window keeps its
   * strong reference to the app.
   * Solution 1: Only use weak refs when reffing upstream objects
   */
  GST_DEBUG ("!!!! self=%p", self);

  if (self->priv->song) {
    GST_INFO ("song: %" G_OBJECT_REF_COUNT_FMT,
        G_OBJECT_LOG_REF_COUNT (self->priv->song));
    bt_song_stop (self->priv->song);
    g_object_unref (self->priv->song);
    self->priv->song = NULL;
  }

  if (self->priv->main_window) {
    GST_INFO ("main_window: %" G_OBJECT_REF_COUNT_FMT,
        G_OBJECT_LOG_REF_COUNT (self->priv->main_window));
    //main-menu.c::on_menu_quit_activate
    gtk_widget_destroy (GTK_WIDGET (self->priv->main_window));
  }

  GST_DEBUG ("  more unrefs");
  g_object_try_unref (self->priv->ui_resources);
  g_object_try_unref (self->priv->pbc_socket);
  g_object_try_unref (self->priv->pbc_ic);
  g_object_try_unref (self->priv->ic_registry);
  g_object_try_unref (self->priv->change_log);
  g_object_try_unref (self->priv->audio_session);

  GST_DEBUG ("  chaining up");
  G_OBJECT_CLASS (bt_edit_application_parent_class)->dispose (object);
  GST_DEBUG ("  done");
}
static void
bt_settings_page_interaction_controller_dispose (GObject * object)
{
  BtSettingsPageInteractionController *self =
      BT_SETTINGS_PAGE_INTERACTION_CONTROLLER (object);

  return_if_disposed ();
  self->priv->dispose_has_run = TRUE;

  GST_DEBUG ("!!!! self=%p", self);

  if (self->priv->device) {
    stop_device (self);
  }

  g_object_unref (self->priv->app);

  G_OBJECT_CLASS (bt_settings_page_interaction_controller_parent_class)->dispose
      (object);
}
Exemplo n.º 24
0
static void
btic_control_set_property (GObject * const object, const guint property_id,
    const GValue * const value, GParamSpec * const pspec)
{
  const BtIcControl *const self = BTIC_CONTROL (object);
  return_if_disposed ();
  switch (property_id) {
    case CONTROL_DEVICE:
      self->priv->device = BTIC_DEVICE (g_value_get_object (value));
      g_object_try_weak_ref (self->priv->device);
      break;
    case CONTROL_NAME:{
      gchar *new_name = g_value_dup_string (value);
      if (!self->priv->name) {
        self->priv->name = new_name;
        GST_DEBUG ("setting initial name '%s'!", self->priv->name);
      } else {
        if (BTIC_IS_LEARN (self->priv->device)) {
          gchar *old_name = self->priv->name;
          self->priv->name = new_name;
          GST_DEBUG ("updating name '%s'!", self->priv->name);
          btic_learn_store_controller_map (BTIC_LEARN (self->priv->device));
          g_free (old_name);
        } else {
          GST_WARNING ("can't change control name '%s'!", self->priv->name);
          g_free (new_name);
        }
      }
      break;
    }
    case CONTROL_ID:
      self->priv->id = g_value_get_uint (value);
      break;
    case CONTROL_BOUND:
      self->priv->bound = g_value_get_boolean (value);
      break;
    default:
      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
      break;
  }
}
Exemplo n.º 25
0
static void
btic_device_get_property (GObject * const object, const guint property_id,
    GValue * const value, GParamSpec * const pspec)
{
  const BtIcDevice *const self = BTIC_DEVICE (object);
  return_if_disposed ();
  switch (property_id) {
    case DEVICE_UDI:
      g_value_set_string (value, self->priv->udi);
      break;
    case DEVICE_NAME:
      g_value_set_string (value, self->priv->name);
      break;
    case DEVICE_CONTROLS:
      g_value_set_pointer (value, g_list_copy (self->priv->controls));
      break;
    default:
      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
      break;
  }
}
Exemplo n.º 26
0
static void
bt_wavetable_get_property (GObject * const object, const guint property_id,
    GValue * const value, GParamSpec * const pspec)
{
  const BtWavetable *const self = BT_WAVETABLE (object);
  return_if_disposed ();
  switch (property_id) {
    case WAVETABLE_SONG:
      g_value_set_object (value, self->priv->song);
      break;
    case WAVETABLE_WAVES:
      g_value_set_pointer (value, g_list_copy (self->priv->waves));
      break;
    case WAVETABLE_MISSING_WAVES:
      g_value_set_pointer (value, self->priv->missing_waves);
      break;
    default:
      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
      break;
  }
}
Exemplo n.º 27
0
static void
bt_settings_dialog_get_property (GObject * object, guint property_id,
    GValue * value, GParamSpec * pspec)
{
  BtSettingsDialog *self = BT_SETTINGS_DIALOG (object);
  return_if_disposed ();
  switch (property_id) {
    case PROP_PAGE:
      g_value_set_enum (value, self->priv->page);
      break;
    case PROP_PAGE_WIDGET:
      switch (self->priv->page) {
        case BT_SETTINGS_PAGE_AUDIO_DEVICES:
          g_value_set_object (value, self->priv->audiodevices_page);
          break;
        case BT_SETTINGS_PAGE_DIRECTORIES:
          g_value_set_object (value, self->priv->directories_page);
          break;
        case BT_SETTINGS_PAGE_INTERACTION_CONTROLLER:
          g_value_set_object (value, self->priv->interaction_controller_page);
          break;
        case BT_SETTINGS_PAGE_PLAYBACK_CONTROLLER:
          g_value_set_object (value, self->priv->playback_controller_page);
          break;
        case BT_SETTINGS_PAGE_SHORTCUTS:
          g_value_set_object (value, self->priv->shortcuts_page);
          break;
        case BT_SETTINGS_PAGE_UI:
          g_value_set_object (value, self->priv->ui_page);
          break;
        default:
          g_assert_not_reached ();
          break;
      }
      break;
    default:
      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
      break;
  }
}
Exemplo n.º 28
0
static void
on_settings_list_cursor_changed (GtkTreeView * treeview, gpointer user_data)
{
  BtSettingsDialog *self = BT_SETTINGS_DIALOG (user_data);
  GtkTreeSelection *selection;
  GtkTreeModel *model;
  GtkTreeIter iter;

  return_if_disposed ();

  GST_INFO ("settings list cursor changed");
  selection =
      gtk_tree_view_get_selection (GTK_TREE_VIEW (self->priv->settings_list));
  if (gtk_tree_selection_get_selected (selection, &model, &iter)) {
    gulong id;

    gtk_tree_model_get (model, &iter, COL_ID, &id, -1);
    GST_INFO ("selected entry id %lu", id);
    gtk_notebook_set_current_page (self->priv->settings_pages, id);
    self->priv->page = id;
    g_object_notify ((gpointer) self, "page");
  }
}
Exemplo n.º 29
0
static void
bt_edit_application_get_property (GObject * object, guint property_id,
    GValue * value, GParamSpec * pspec)
{
  BtEditApplication *self = BT_EDIT_APPLICATION (object);
  return_if_disposed ();
  switch (property_id) {
    case EDIT_APPLICATION_SONG:
      g_value_set_object (value, self->priv->song);
      break;
    case EDIT_APPLICATION_MAIN_WINDOW:
      g_value_set_object (value, self->priv->main_window);
      break;
    case EDIT_APPLICATION_IC_REGISTRY:
      g_value_set_object (value, self->priv->ic_registry);
      break;
    case EDIT_APPLICATION_UNSAVED:
      g_value_set_boolean (value, self->priv->unsaved);
      break;
    default:
      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
      break;
  }
}
Exemplo n.º 30
0
static void
btic_control_get_property (GObject * const object, const guint property_id,
    GValue * const value, GParamSpec * const pspec)
{
  const BtIcControl *const self = BTIC_CONTROL (object);
  return_if_disposed ();
  switch (property_id) {
    case CONTROL_DEVICE:
      g_value_set_object (value, self->priv->device);
      break;
    case CONTROL_NAME:
      g_value_set_string (value, self->priv->name);
      break;
    case CONTROL_ID:
      g_value_set_uint (value, self->priv->id);
      break;
    case CONTROL_BOUND:
      g_value_set_boolean (value, self->priv->bound);
      break;
    default:
      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
      break;
  }
}