diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2018-04-21 22:00:00 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2018-04-21 22:00:00 (GMT) |
commit | 8eb95d316f7b6fbad0ff798abfe7f70f89e812d2 (patch) | |
tree | 4f310c7ffdb94d48fff236e63c7e6f0ed9f1dee1 /src/core | |
parent | 315146a49b5570294ca20beca720c4e3f74a86bd (diff) |
Improved the way file formats are detected and loaded.
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/core.c | 8 | ||||
-rw-r--r-- | src/core/global.c | 98 | ||||
-rw-r--r-- | src/core/global.h | 13 |
3 files changed, 118 insertions, 1 deletions
diff --git a/src/core/core.c b/src/core/core.c index 2d790ce..1b6b033 100644 --- a/src/core/core.c +++ b/src/core/core.c @@ -64,6 +64,8 @@ bool load_all_basic_components(void) static bool result = false; /* Bilan à retourner */ char *cfgdir; /* Répertoire de configuration */ GWorkQueue *queue; /* Singleton pour tâches */ + GContentExplorer *explorer; /* Explorateur de contenus */ + GContentResolver *resolver; /* Résolveur de contenus */ /** * On mémorise les passages réussis. @@ -97,6 +99,12 @@ bool load_all_basic_components(void) queue = g_work_queue_new(); set_work_queue(queue); + explorer = g_content_explorer_new(); + set_current_content_explorer(explorer); + + resolver = g_content_resolver_new(); + set_current_content_resolver(resolver); + result &= init_segment_content_hash_table(); result &= load_hard_coded_processors_definitions(); diff --git a/src/core/global.c b/src/core/global.c index b227a5d..decf300 100644 --- a/src/core/global.c +++ b/src/core/global.c @@ -31,6 +31,12 @@ /* Gestionnaire de tâches parallèles */ static GWorkQueue *_queue = NULL; +/* Explorateur de contenus */ +static GContentExplorer *_explorer = NULL; + +/* Résolveur de contenus */ +static GContentResolver *_resolver = NULL; + /* Projet global actif */ static GStudyProject *_project = NULL; @@ -81,6 +87,96 @@ GWorkQueue *get_work_queue(void) /****************************************************************************** * * +* Paramètres : explorer = éventuelle adresse du nouveau gestionnaire. * +* * +* Description : Définit l'adresse de l'explorateur de contenus courant. * +* * +* Retour : - * +* * +* Remarques : - * +* * +******************************************************************************/ + +void set_current_content_explorer(GContentExplorer *explorer) +{ + if (_explorer != NULL) + g_object_unref(G_OBJECT(_explorer)); + + _explorer = explorer; + +} + + +/****************************************************************************** +* * +* Paramètres : - * +* * +* Description : Fournit l'adresse de l'explorateur de contenus courant. * +* * +* Retour : Adresse de l'explorateur global ou NULL si aucun (!). * +* * +* Remarques : - * +* * +******************************************************************************/ + +GContentExplorer *get_current_content_explorer(void) +{ + assert(_explorer != NULL); + + g_object_ref(G_OBJECT(_explorer)); + + return _explorer; + +} + + +/****************************************************************************** +* * +* Paramètres : resolver = éventuelle adresse du nouveau gestionnaire. * +* * +* Description : Définit l'adresse du résolveur de contenus courant. * +* * +* Retour : - * +* * +* Remarques : - * +* * +******************************************************************************/ + +void set_current_content_resolver(GContentResolver *resolver) +{ + if (_resolver != NULL) + g_object_unref(G_OBJECT(_resolver)); + + _resolver = resolver; + +} + + +/****************************************************************************** +* * +* Paramètres : - * +* * +* Description : Fournit l'adresse du résolveur de contenus courant. * +* * +* Retour : Adresse du résolveur global ou NULL si aucun (!). * +* * +* Remarques : - * +* * +******************************************************************************/ + +GContentResolver *get_current_content_resolver(void) +{ + assert(_resolver != NULL); + + g_object_ref(G_OBJECT(_resolver)); + + return _resolver; + +} + + +/****************************************************************************** +* * * Paramètres : project = éventuelle adresse du nouveau projet principal. * * * * Description : Définit l'adresse du projet courant. * @@ -112,7 +208,7 @@ void set_current_project(GStudyProject *project) /****************************************************************************** * * -* Paramètres : project = éventuel adresse à renvoyer désormais. * +* Paramètres : - * * * * Description : Fournit l'adresse du projet courant. * * * diff --git a/src/core/global.h b/src/core/global.h index 6cf029f..5f01909 100644 --- a/src/core/global.h +++ b/src/core/global.h @@ -25,6 +25,7 @@ #define _CORE_GLOBAL_H +#include "../analysis/loading.h" #include "../analysis/project.h" #include "../glibext/delayed.h" @@ -36,6 +37,18 @@ void set_work_queue(GWorkQueue *); /* Fournit le gestionnaire de traitements parallèles courant. */ GWorkQueue *get_work_queue(void); +/* Définit l'adresse de l'explorateur de contenus courant. */ +void set_current_content_explorer(GContentExplorer *); + +/* Fournit l'adresse de l'explorateur de contenus courant. */ +GContentExplorer *get_current_content_explorer(void); + +/* Définit l'adresse du résolveur de contenus courant. */ +void set_current_content_resolver(GContentResolver *); + +/* Fournit l'adresse du résolveur de contenus courant. */ +GContentResolver *get_current_content_resolver(void); + /* Définit l'adresse du projet courant. */ void set_current_project(GStudyProject *); |