project: Add a 'asset-loading' signal
authorThibault Saunier <tsaunier@gnome.org>
Sat, 7 Nov 2015 17:21:53 +0000 (18:21 +0100)
committerThibault Saunier <tsaunier@gnome.org>
Sun, 8 Nov 2015 21:56:41 +0000 (22:56 +0100)
ges/ges-project.c
ges/ges-project.h

index c393c45..72619af 100644 (file)
@@ -82,6 +82,7 @@ enum
   ASSET_ADDED_SIGNAL,
   ASSET_REMOVED_SIGNAL,
   MISSING_URI_SIGNAL,
+  ASSET_LOADING_SIGNAL,
   LAST_SIGNAL
 };
 
@@ -434,7 +435,7 @@ ges_project_class_init (GESProjectClass * klass)
 
   /**
    * GESProject::asset-added:
-   * @formatter: the #GESProject
+   * @project: the #GESProject
    * @asset: The #GESAsset that has been added to @project
    */
   _signals[ASSET_ADDED_SIGNAL] =
@@ -443,8 +444,20 @@ ges_project_class_init (GESProjectClass * klass)
       NULL, NULL, g_cclosure_marshal_generic, G_TYPE_NONE, 1, GES_TYPE_ASSET);
 
   /**
+   * GESProject::asset-loading:
+   * @project: the #GESProject
+   * @asset: The #GESAsset that started loading
+   *
+   * Since: 1.8
+   */
+  _signals[ASSET_LOADING_SIGNAL] =
+      g_signal_new ("asset-loading", G_TYPE_FROM_CLASS (klass),
+      G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GESProjectClass, asset_loading),
+      NULL, NULL, g_cclosure_marshal_generic, G_TYPE_NONE, 1, GES_TYPE_ASSET);
+
+  /**
    * GESProject::asset-removed:
-   * @formatter: the #GESProject
+   * @project: the #GESProject
    * @asset: The #GESAsset that has been removed from @project
    */
   _signals[ASSET_REMOVED_SIGNAL] =
@@ -657,9 +670,11 @@ ges_project_add_loading_asset (GESProject * project, GType extractable_type,
 {
   GESAsset *asset;
 
-  if ((asset = ges_asset_cache_lookup (extractable_type, id)))
-    g_hash_table_insert (project->priv->loading_assets, g_strdup (id),
-        gst_object_ref (asset));
+  if ((asset = ges_asset_cache_lookup (extractable_type, id))) {
+    if (g_hash_table_insert (project->priv->loading_assets, g_strdup (id),
+            gst_object_ref (asset)))
+      g_signal_emit (project, _signals[ASSET_LOADING_SIGNAL], 0, asset);
+  }
 }
 
 /**************************************
index 3f8a24b..acd0386 100644 (file)
@@ -57,6 +57,8 @@ struct _GESProjectClass
   /* Signals */
   void     (*asset_added)    (GESProject * self,
                               GESAsset   * asset);
+  void     (*asset_loading)  (GESProject * self,
+                              GESAsset   * asset);
   void     (*asset_removed)  (GESProject * self,
                               GESAsset   * asset);
   gchar *  (*missing_uri)    (GESProject * self,