Codebase list libmanette / 7a0326d
device: Add user mapping accessors This will be used in GNOME Games to save and remove user mappings. Adrien Plazas 6 years ago
2 changed file(s) with 78 addition(s) and 0 deletion(s). Raw diff Collapse all Expand all
2525 #include <string.h>
2626 #include <unistd.h>
2727 #include "manette-event-private.h"
28 #include "manette-mapping-manager.h"
2829
2930 struct _ManetteDevice
3031 {
889890
890891 self->mapping = mapping ? g_object_ref (mapping) : NULL;
891892 }
893
894 /**
895 * manette_device_has_user_mapping:
896 * @self: a #ManetteDevice
897 *
898 * Gets whether @self has a user mapping.
899 *
900 * Returns: whether @self has a user mapping
901 */
902 gboolean
903 manette_device_has_user_mapping (ManetteDevice *self)
904 {
905 const gchar *guid;
906 ManetteMappingManager *mapping_manager;
907 gboolean has_user_mapping;
908
909 g_return_val_if_fail (MANETTE_IS_DEVICE (self), FALSE);
910
911 guid = manette_device_get_guid (self);
912 mapping_manager = manette_mapping_manager_new ();
913 has_user_mapping = manette_mapping_manager_has_user_mapping (mapping_manager, guid);
914 g_object_unref (mapping_manager);
915
916 return has_user_mapping;
917 }
918
919 /**
920 * manette_device_save_user_mapping:
921 * @self: a #ManetteDevice
922 * @mapping_string: the mapping string
923 *
924 * Saves @mapping_string as the user mapping for @self.
925 */
926 void
927 manette_device_save_user_mapping (ManetteDevice *self,
928 const gchar *mapping_string)
929 {
930 const gchar *guid;
931 const gchar *name;
932 ManetteMappingManager *mapping_manager;
933
934 g_return_if_fail (MANETTE_IS_DEVICE (self));
935 g_return_if_fail (mapping_string != NULL);
936
937 guid = manette_device_get_guid (self);
938 name = manette_device_get_name (self);
939 mapping_manager = manette_mapping_manager_new ();
940 manette_mapping_manager_save_mapping (mapping_manager,
941 guid,
942 name,
943 mapping_string);
944 g_object_unref (mapping_manager);
945 }
946
947 /**
948 * manette_device_remove_user_mapping:
949 * @self: a #ManetteDevice
950 *
951 * Removes the user mapping for @self.
952 */
953 void
954 manette_device_remove_user_mapping (ManetteDevice *self)
955 {
956 const gchar *guid;
957 ManetteMappingManager *mapping_manager;
958
959 g_return_if_fail (MANETTE_IS_DEVICE (self));
960
961 guid = manette_device_get_guid (self);
962 mapping_manager = manette_mapping_manager_new ();
963 manette_mapping_manager_delete_mapping (mapping_manager, guid);
964 g_object_unref (mapping_manager);
965 }
3535 guint code);
3636 const gchar *manette_device_get_name (ManetteDevice *self);
3737 const gchar *manette_device_get_guid (ManetteDevice *self);
38 gboolean manette_device_has_user_mapping (ManetteDevice *self);
39 void manette_device_save_user_mapping (ManetteDevice *self,
40 const gchar *mapping_string);
41 void manette_device_remove_user_mapping (ManetteDevice *self);
3842
3943 G_END_DECLS
4044