fpi-context: Make fpi_get_driver_types to return an array
No need to create one all the times and the fill it with what we need.
This commit is contained in:
parent
8184e33dd6
commit
09576e5209
5 changed files with 11 additions and 16 deletions
|
@ -243,8 +243,7 @@ fp_context_init (FpContext *self)
|
||||||
g_autoptr(GError) error = NULL;
|
g_autoptr(GError) error = NULL;
|
||||||
FpContextPrivate *priv = fp_context_get_instance_private (self);
|
FpContextPrivate *priv = fp_context_get_instance_private (self);
|
||||||
|
|
||||||
priv->drivers = g_array_new (TRUE, FALSE, sizeof (GType));
|
priv->drivers = fpi_get_driver_types ();
|
||||||
fpi_get_driver_types (priv->drivers);
|
|
||||||
|
|
||||||
priv->devices = g_ptr_array_new_with_free_func (g_object_unref);
|
priv->devices = g_ptr_array_new_with_free_func (g_object_unref);
|
||||||
|
|
||||||
|
|
|
@ -23,11 +23,12 @@
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* fpi_get_driver_types:
|
* fpi_get_driver_types:
|
||||||
* @drivers: #GArray to be filled with all driver types
|
|
||||||
*
|
*
|
||||||
* This function is purely for private used. It is solely part of the public
|
* This function is purely for private used. It is solely part of the public
|
||||||
* API as it is useful during build time.
|
* API as it is useful during build time.
|
||||||
*
|
*
|
||||||
* Stability: private
|
* Stability: private
|
||||||
|
* Returns: (element-type GType) (transfer container): a #GArray filled with
|
||||||
|
* all driver types
|
||||||
*/
|
*/
|
||||||
void fpi_get_driver_types (GArray *drivers);
|
GArray *fpi_get_driver_types (void);
|
||||||
|
|
|
@ -31,11 +31,9 @@ GHashTable *printed = NULL;
|
||||||
static GList *
|
static GList *
|
||||||
insert_drivers (GList *list)
|
insert_drivers (GList *list)
|
||||||
{
|
{
|
||||||
g_autoptr(GArray) drivers = g_array_new (FALSE, FALSE, sizeof (GType));
|
g_autoptr(GArray) drivers = fpi_get_driver_types ();
|
||||||
gint i;
|
gint i;
|
||||||
|
|
||||||
fpi_get_driver_types (drivers);
|
|
||||||
|
|
||||||
/* Find the best driver to handle this USB device. */
|
/* Find the best driver to handle this USB device. */
|
||||||
for (i = 0; i < drivers->len; i++)
|
for (i = 0; i < drivers->len; i++)
|
||||||
{
|
{
|
||||||
|
|
|
@ -96,11 +96,9 @@ print_driver (const FpDeviceClass *cls)
|
||||||
int
|
int
|
||||||
main (int argc, char **argv)
|
main (int argc, char **argv)
|
||||||
{
|
{
|
||||||
g_autoptr(GArray) drivers = g_array_new (FALSE, FALSE, sizeof (GType));
|
g_autoptr(GArray) drivers = fpi_get_driver_types ();
|
||||||
guint i;
|
guint i;
|
||||||
|
|
||||||
fpi_get_driver_types (drivers);
|
|
||||||
|
|
||||||
printed = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
|
printed = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
|
||||||
|
|
||||||
for (i = 0; i < drivers->len; i++)
|
for (i = 0; i < drivers->len; i++)
|
||||||
|
|
11
meson.build
11
meson.build
|
@ -151,21 +151,20 @@ drivers_type_func = []
|
||||||
drivers_type_list += '#include <glib-object.h>'
|
drivers_type_list += '#include <glib-object.h>'
|
||||||
drivers_type_list += '#include "fpi-context.h"'
|
drivers_type_list += '#include "fpi-context.h"'
|
||||||
drivers_type_list += ''
|
drivers_type_list += ''
|
||||||
drivers_type_func += 'void fpi_get_driver_types (GArray *drivers)'
|
drivers_type_func += 'GArray *'
|
||||||
|
drivers_type_func += 'fpi_get_driver_types (void)'
|
||||||
drivers_type_func += '{'
|
drivers_type_func += '{'
|
||||||
|
drivers_type_func += ' GArray *drivers = g_array_new (TRUE, FALSE, sizeof (GType));'
|
||||||
drivers_type_func += ' GType t;'
|
drivers_type_func += ' GType t;'
|
||||||
drivers_type_func += ''
|
drivers_type_func += ''
|
||||||
idx = 0
|
|
||||||
foreach driver: drivers
|
foreach driver: drivers
|
||||||
drivers_type_list += 'extern GType (fpi_device_' + driver + '_get_type) (void);'
|
drivers_type_list += 'extern GType (fpi_device_' + driver + '_get_type) (void);'
|
||||||
drivers_type_func += ' t = fpi_device_' + driver + '_get_type ();'
|
drivers_type_func += ' t = fpi_device_' + driver + '_get_type ();'
|
||||||
drivers_type_func += ' g_array_append_val (drivers, t);'
|
drivers_type_func += ' g_array_append_val (drivers, t);'
|
||||||
if idx != drivers.length() - 1
|
drivers_type_func += ''
|
||||||
drivers_type_func += ''
|
|
||||||
idx += 1
|
|
||||||
endif
|
|
||||||
endforeach
|
endforeach
|
||||||
drivers_type_list += ''
|
drivers_type_list += ''
|
||||||
|
drivers_type_func += ' return drivers;'
|
||||||
drivers_type_func += '}'
|
drivers_type_func += '}'
|
||||||
|
|
||||||
root_inc = include_directories('.')
|
root_inc = include_directories('.')
|
||||||
|
|
Loading…
Reference in a new issue