2010-01-25 15:20:09 +00:00
|
|
|
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
|
|
|
|
|
*
|
|
|
|
|
* Copyright (C) 2008 Richard Hughes <richard@hughsie.com>
|
|
|
|
|
*
|
|
|
|
|
* Licensed under the GNU General Public License Version 2
|
|
|
|
|
*
|
|
|
|
|
* This program is free software; you can redistribute it and/or modify
|
|
|
|
|
* it under the terms of the GNU General Public License as published by
|
|
|
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
|
|
|
* (at your option) any later version.
|
|
|
|
|
*
|
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
|
* GNU General Public License for more details.
|
|
|
|
|
*
|
|
|
|
|
* You should have received a copy of the GNU General Public License
|
|
|
|
|
* along with this program; if not, write to the Free Software
|
2010-01-27 16:27:15 +00:00
|
|
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
2010-01-25 15:20:09 +00:00
|
|
|
*/
|
|
|
|
|
|
2010-01-25 16:26:47 +00:00
|
|
|
/**
|
|
|
|
|
* SECTION:up-types
|
|
|
|
|
* @short_description: Types used by UPower and libupower-glib
|
|
|
|
|
*
|
|
|
|
|
* These helper functions provide a way to marshal enumerated values to
|
|
|
|
|
* text and back again.
|
|
|
|
|
*
|
|
|
|
|
* See also: #UpClient, #UpDevice
|
|
|
|
|
*/
|
|
|
|
|
|
2010-01-25 15:20:09 +00:00
|
|
|
#include "config.h"
|
|
|
|
|
|
|
|
|
|
#include <glib.h>
|
|
|
|
|
|
|
|
|
|
#include "up-types.h"
|
|
|
|
|
|
|
|
|
|
/**
|
2010-01-26 10:53:04 +00:00
|
|
|
* up_device_kind_to_string:
|
2010-01-25 15:20:09 +00:00
|
|
|
*
|
2010-01-26 10:53:04 +00:00
|
|
|
* Converts a #UpDeviceKind to a string.
|
2010-01-25 15:20:09 +00:00
|
|
|
*
|
|
|
|
|
* Return value: identifier string
|
|
|
|
|
*
|
|
|
|
|
* Since: 0.9.0
|
|
|
|
|
**/
|
|
|
|
|
const gchar *
|
2010-01-26 10:53:04 +00:00
|
|
|
up_device_kind_to_string (UpDeviceKind type_enum)
|
2010-01-25 15:20:09 +00:00
|
|
|
{
|
|
|
|
|
switch (type_enum) {
|
2010-01-26 10:53:04 +00:00
|
|
|
case UP_DEVICE_KIND_LINE_POWER:
|
2013-10-11 11:14:02 +02:00
|
|
|
return "line-power";
|
2010-01-26 10:53:04 +00:00
|
|
|
case UP_DEVICE_KIND_BATTERY:
|
2013-10-11 11:14:02 +02:00
|
|
|
return "battery";
|
2010-01-26 10:53:04 +00:00
|
|
|
case UP_DEVICE_KIND_UPS:
|
2013-10-11 11:14:02 +02:00
|
|
|
return "ups";
|
2010-01-26 10:53:04 +00:00
|
|
|
case UP_DEVICE_KIND_MONITOR:
|
2013-10-11 11:14:02 +02:00
|
|
|
return "monitor";
|
2010-01-26 10:53:04 +00:00
|
|
|
case UP_DEVICE_KIND_MOUSE:
|
2013-10-11 11:14:02 +02:00
|
|
|
return "mouse";
|
2010-01-26 10:53:04 +00:00
|
|
|
case UP_DEVICE_KIND_KEYBOARD:
|
2013-10-11 11:14:02 +02:00
|
|
|
return "keyboard";
|
2010-01-26 10:53:04 +00:00
|
|
|
case UP_DEVICE_KIND_PDA:
|
2013-10-11 11:14:02 +02:00
|
|
|
return "pda";
|
2010-01-26 10:53:04 +00:00
|
|
|
case UP_DEVICE_KIND_PHONE:
|
2013-10-11 11:14:02 +02:00
|
|
|
return "phone";
|
2010-05-28 11:45:44 +01:00
|
|
|
case UP_DEVICE_KIND_MEDIA_PLAYER:
|
2013-10-11 11:14:02 +02:00
|
|
|
return "media-player";
|
2010-05-28 11:45:44 +01:00
|
|
|
case UP_DEVICE_KIND_TABLET:
|
2013-10-11 11:14:02 +02:00
|
|
|
return "tablet";
|
2010-06-01 14:25:10 +01:00
|
|
|
case UP_DEVICE_KIND_COMPUTER:
|
2013-10-11 11:14:02 +02:00
|
|
|
return "computer";
|
lib: Add UP_DEVICE_KIND_GAMING_INPUT for gaming devices
Joypads, joysticks, dance mats, paddles, Wiimotes, steering wheels,
tractor cabin simulators, pedals, yokes, breathing controllers, and,
hmm, etc.
https://bugs.freedesktop.org/show_bug.cgi?id=102493
2017-08-31 15:33:49 +02:00
|
|
|
case UP_DEVICE_KIND_GAMING_INPUT:
|
|
|
|
|
return "gaming-input";
|
2010-01-25 15:20:09 +00:00
|
|
|
default:
|
2013-10-11 11:14:02 +02:00
|
|
|
return "unknown";
|
2010-01-25 15:20:09 +00:00
|
|
|
}
|
2013-10-11 11:14:02 +02:00
|
|
|
g_assert_not_reached ();
|
2010-01-25 15:20:09 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
2010-01-26 10:53:04 +00:00
|
|
|
* up_device_kind_from_string:
|
2010-01-25 15:20:09 +00:00
|
|
|
*
|
2010-01-26 10:53:04 +00:00
|
|
|
* Converts a string to a #UpDeviceKind.
|
2010-01-25 15:20:09 +00:00
|
|
|
*
|
|
|
|
|
* Return value: enumerated value
|
|
|
|
|
*
|
|
|
|
|
* Since: 0.9.0
|
|
|
|
|
**/
|
2010-01-26 10:53:04 +00:00
|
|
|
UpDeviceKind
|
|
|
|
|
up_device_kind_from_string (const gchar *type)
|
2010-01-25 15:20:09 +00:00
|
|
|
{
|
|
|
|
|
if (type == NULL)
|
2010-01-26 10:53:04 +00:00
|
|
|
return UP_DEVICE_KIND_UNKNOWN;
|
2017-04-10 10:37:32 +02:00
|
|
|
if (g_str_equal (type, "line-power"))
|
2010-01-26 10:53:04 +00:00
|
|
|
return UP_DEVICE_KIND_LINE_POWER;
|
2017-04-10 10:37:32 +02:00
|
|
|
if (g_str_equal (type, "battery"))
|
2010-01-26 10:53:04 +00:00
|
|
|
return UP_DEVICE_KIND_BATTERY;
|
2017-04-10 10:37:32 +02:00
|
|
|
if (g_str_equal (type, "ups"))
|
2010-01-26 10:53:04 +00:00
|
|
|
return UP_DEVICE_KIND_UPS;
|
2017-04-10 10:37:32 +02:00
|
|
|
if (g_str_equal (type, "monitor"))
|
2010-01-26 10:53:04 +00:00
|
|
|
return UP_DEVICE_KIND_MONITOR;
|
2017-04-10 10:37:32 +02:00
|
|
|
if (g_str_equal (type, "mouse"))
|
2010-01-26 10:53:04 +00:00
|
|
|
return UP_DEVICE_KIND_MOUSE;
|
2017-04-10 10:37:32 +02:00
|
|
|
if (g_str_equal (type, "keyboard"))
|
2010-01-26 10:53:04 +00:00
|
|
|
return UP_DEVICE_KIND_KEYBOARD;
|
2017-04-10 10:37:32 +02:00
|
|
|
if (g_str_equal (type, "pda"))
|
2010-01-26 10:53:04 +00:00
|
|
|
return UP_DEVICE_KIND_PDA;
|
2017-04-10 10:37:32 +02:00
|
|
|
if (g_str_equal (type, "phone"))
|
2010-01-26 10:53:04 +00:00
|
|
|
return UP_DEVICE_KIND_PHONE;
|
2017-04-10 10:37:32 +02:00
|
|
|
if (g_str_equal (type, "media-player"))
|
2010-05-28 11:45:44 +01:00
|
|
|
return UP_DEVICE_KIND_MEDIA_PLAYER;
|
2017-04-10 10:37:32 +02:00
|
|
|
if (g_str_equal (type, "tablet"))
|
2010-05-28 11:45:44 +01:00
|
|
|
return UP_DEVICE_KIND_TABLET;
|
lib: Add UP_DEVICE_KIND_GAMING_INPUT for gaming devices
Joypads, joysticks, dance mats, paddles, Wiimotes, steering wheels,
tractor cabin simulators, pedals, yokes, breathing controllers, and,
hmm, etc.
https://bugs.freedesktop.org/show_bug.cgi?id=102493
2017-08-31 15:33:49 +02:00
|
|
|
if (g_str_equal (type, "gaming-input"))
|
|
|
|
|
return UP_DEVICE_KIND_GAMING_INPUT;
|
2010-01-26 10:53:04 +00:00
|
|
|
return UP_DEVICE_KIND_UNKNOWN;
|
2010-01-25 15:20:09 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* up_device_state_to_string:
|
|
|
|
|
*
|
|
|
|
|
* Converts a #UpDeviceState to a string.
|
|
|
|
|
*
|
|
|
|
|
* Return value: identifier string
|
|
|
|
|
*
|
|
|
|
|
* Since: 0.9.0
|
|
|
|
|
**/
|
|
|
|
|
const gchar *
|
|
|
|
|
up_device_state_to_string (UpDeviceState state_enum)
|
|
|
|
|
{
|
|
|
|
|
switch (state_enum) {
|
|
|
|
|
case UP_DEVICE_STATE_CHARGING:
|
2013-10-11 11:14:02 +02:00
|
|
|
return "charging";
|
2010-01-25 15:20:09 +00:00
|
|
|
case UP_DEVICE_STATE_DISCHARGING:
|
2013-10-11 11:14:02 +02:00
|
|
|
return "discharging";
|
2010-01-25 15:20:09 +00:00
|
|
|
case UP_DEVICE_STATE_EMPTY:
|
2013-10-11 11:14:02 +02:00
|
|
|
return "empty";
|
2010-01-25 15:20:09 +00:00
|
|
|
case UP_DEVICE_STATE_FULLY_CHARGED:
|
2013-10-11 11:14:02 +02:00
|
|
|
return "fully-charged";
|
2010-01-25 15:20:09 +00:00
|
|
|
case UP_DEVICE_STATE_PENDING_CHARGE:
|
2013-10-11 11:14:02 +02:00
|
|
|
return "pending-charge";
|
2010-01-25 15:20:09 +00:00
|
|
|
case UP_DEVICE_STATE_PENDING_DISCHARGE:
|
2013-10-11 11:14:02 +02:00
|
|
|
return "pending-discharge";
|
2010-01-25 15:20:09 +00:00
|
|
|
default:
|
2013-10-11 11:14:02 +02:00
|
|
|
return "unknown";
|
2010-01-25 15:20:09 +00:00
|
|
|
}
|
2013-10-11 11:14:02 +02:00
|
|
|
g_assert_not_reached ();
|
2010-01-25 15:20:09 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* up_device_state_from_string:
|
|
|
|
|
*
|
|
|
|
|
* Converts a string to a #UpDeviceState.
|
|
|
|
|
*
|
|
|
|
|
* Return value: enumerated value
|
|
|
|
|
*
|
|
|
|
|
* Since: 0.9.0
|
|
|
|
|
**/
|
|
|
|
|
UpDeviceState
|
|
|
|
|
up_device_state_from_string (const gchar *state)
|
|
|
|
|
{
|
|
|
|
|
if (state == NULL)
|
|
|
|
|
return UP_DEVICE_STATE_UNKNOWN;
|
2017-04-10 10:37:32 +02:00
|
|
|
if (g_str_equal (state, "charging"))
|
2010-01-25 15:20:09 +00:00
|
|
|
return UP_DEVICE_STATE_CHARGING;
|
2017-04-10 10:37:32 +02:00
|
|
|
if (g_str_equal (state, "discharging"))
|
2010-01-25 15:20:09 +00:00
|
|
|
return UP_DEVICE_STATE_DISCHARGING;
|
2017-04-10 10:37:32 +02:00
|
|
|
if (g_str_equal (state, "empty"))
|
2010-01-25 15:20:09 +00:00
|
|
|
return UP_DEVICE_STATE_EMPTY;
|
2017-04-10 10:37:32 +02:00
|
|
|
if (g_str_equal (state, "fully-charged"))
|
2010-01-25 15:20:09 +00:00
|
|
|
return UP_DEVICE_STATE_FULLY_CHARGED;
|
2017-04-10 10:37:32 +02:00
|
|
|
if (g_str_equal (state, "pending-charge"))
|
2010-01-25 15:20:09 +00:00
|
|
|
return UP_DEVICE_STATE_PENDING_CHARGE;
|
2017-04-10 10:37:32 +02:00
|
|
|
if (g_str_equal (state, "pending-discharge"))
|
2010-01-25 15:20:09 +00:00
|
|
|
return UP_DEVICE_STATE_PENDING_DISCHARGE;
|
|
|
|
|
return UP_DEVICE_STATE_UNKNOWN;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* up_device_technology_to_string:
|
|
|
|
|
*
|
|
|
|
|
* Converts a #UpDeviceTechnology to a string.
|
|
|
|
|
*
|
|
|
|
|
* Return value: identifier string
|
|
|
|
|
*
|
|
|
|
|
* Since: 0.9.0
|
|
|
|
|
**/
|
|
|
|
|
const gchar *
|
|
|
|
|
up_device_technology_to_string (UpDeviceTechnology technology_enum)
|
|
|
|
|
{
|
|
|
|
|
switch (technology_enum) {
|
|
|
|
|
case UP_DEVICE_TECHNOLOGY_LITHIUM_ION:
|
2013-10-11 11:14:02 +02:00
|
|
|
return "lithium-ion";
|
2010-01-25 15:20:09 +00:00
|
|
|
case UP_DEVICE_TECHNOLOGY_LITHIUM_POLYMER:
|
2013-10-11 11:14:02 +02:00
|
|
|
return "lithium-polymer";
|
2010-01-25 15:20:09 +00:00
|
|
|
case UP_DEVICE_TECHNOLOGY_LITHIUM_IRON_PHOSPHATE:
|
2013-10-11 11:14:02 +02:00
|
|
|
return "lithium-iron-phosphate";
|
2010-01-25 15:20:09 +00:00
|
|
|
case UP_DEVICE_TECHNOLOGY_LEAD_ACID:
|
2013-10-11 11:14:02 +02:00
|
|
|
return "lead-acid";
|
2010-01-25 15:20:09 +00:00
|
|
|
case UP_DEVICE_TECHNOLOGY_NICKEL_CADMIUM:
|
2013-10-11 11:14:02 +02:00
|
|
|
return "nickel-cadmium";
|
2010-01-25 15:20:09 +00:00
|
|
|
case UP_DEVICE_TECHNOLOGY_NICKEL_METAL_HYDRIDE:
|
2013-10-11 11:14:02 +02:00
|
|
|
return "nickel-metal-hydride";
|
2010-01-25 15:20:09 +00:00
|
|
|
default:
|
2013-10-11 11:14:02 +02:00
|
|
|
return "unknown";
|
2010-01-25 15:20:09 +00:00
|
|
|
}
|
2013-10-11 11:14:02 +02:00
|
|
|
g_assert_not_reached ();
|
2010-01-25 15:20:09 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* up_device_technology_from_string:
|
|
|
|
|
*
|
|
|
|
|
* Converts a string to a #UpDeviceTechnology.
|
|
|
|
|
*
|
|
|
|
|
* Return value: enumerated value
|
|
|
|
|
*
|
|
|
|
|
* Since: 0.9.0
|
|
|
|
|
**/
|
|
|
|
|
UpDeviceTechnology
|
|
|
|
|
up_device_technology_from_string (const gchar *technology)
|
|
|
|
|
{
|
|
|
|
|
if (technology == NULL)
|
|
|
|
|
return UP_DEVICE_TECHNOLOGY_UNKNOWN;
|
2017-04-10 10:37:32 +02:00
|
|
|
if (g_str_equal (technology, "lithium-ion"))
|
2010-01-25 15:20:09 +00:00
|
|
|
return UP_DEVICE_TECHNOLOGY_LITHIUM_ION;
|
2017-04-10 10:37:32 +02:00
|
|
|
if (g_str_equal (technology, "lithium-polymer"))
|
2010-01-25 15:20:09 +00:00
|
|
|
return UP_DEVICE_TECHNOLOGY_LITHIUM_POLYMER;
|
2017-04-10 10:37:32 +02:00
|
|
|
if (g_str_equal (technology, "lithium-iron-phosphate"))
|
2010-01-25 15:20:09 +00:00
|
|
|
return UP_DEVICE_TECHNOLOGY_LITHIUM_IRON_PHOSPHATE;
|
2017-04-10 10:37:32 +02:00
|
|
|
if (g_str_equal (technology, "lead-acid"))
|
2010-01-25 15:20:09 +00:00
|
|
|
return UP_DEVICE_TECHNOLOGY_LEAD_ACID;
|
2017-04-10 10:37:32 +02:00
|
|
|
if (g_str_equal (technology, "nickel-cadmium"))
|
2010-01-25 15:20:09 +00:00
|
|
|
return UP_DEVICE_TECHNOLOGY_NICKEL_CADMIUM;
|
2017-04-10 10:37:32 +02:00
|
|
|
if (g_str_equal (technology, "nickel-metal-hydride"))
|
2010-01-25 15:20:09 +00:00
|
|
|
return UP_DEVICE_TECHNOLOGY_NICKEL_METAL_HYDRIDE;
|
|
|
|
|
return UP_DEVICE_TECHNOLOGY_UNKNOWN;
|
|
|
|
|
}
|
2013-10-11 11:20:37 +02:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* up_device_level_to_string:
|
|
|
|
|
*
|
|
|
|
|
* Converts a #UpDeviceLevel to a string.
|
|
|
|
|
*
|
|
|
|
|
* Return value: identifier string
|
|
|
|
|
*
|
|
|
|
|
* Since: 1.0
|
|
|
|
|
**/
|
|
|
|
|
const gchar *
|
|
|
|
|
up_device_level_to_string (UpDeviceLevel level_enum)
|
|
|
|
|
{
|
|
|
|
|
switch (level_enum) {
|
|
|
|
|
case UP_DEVICE_LEVEL_UNKNOWN:
|
|
|
|
|
return "unknown";
|
|
|
|
|
case UP_DEVICE_LEVEL_NONE:
|
|
|
|
|
return "none";
|
2013-10-14 14:33:54 +02:00
|
|
|
case UP_DEVICE_LEVEL_DISCHARGING:
|
|
|
|
|
return "discharging";
|
2013-10-11 11:20:37 +02:00
|
|
|
case UP_DEVICE_LEVEL_LOW:
|
|
|
|
|
return "low";
|
|
|
|
|
case UP_DEVICE_LEVEL_CRITICAL:
|
|
|
|
|
return "critical";
|
|
|
|
|
case UP_DEVICE_LEVEL_ACTION:
|
|
|
|
|
return "action";
|
2017-04-04 18:16:10 +02:00
|
|
|
case UP_DEVICE_LEVEL_NORMAL:
|
|
|
|
|
return "normal";
|
|
|
|
|
case UP_DEVICE_LEVEL_HIGH:
|
|
|
|
|
return "high";
|
|
|
|
|
case UP_DEVICE_LEVEL_FULL:
|
|
|
|
|
return "full";
|
2013-10-11 11:20:37 +02:00
|
|
|
default:
|
|
|
|
|
return "unknown";
|
|
|
|
|
}
|
|
|
|
|
g_assert_not_reached ();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* up_device_level_from_string:
|
|
|
|
|
*
|
|
|
|
|
* Converts a string to a #UpDeviceLevel.
|
|
|
|
|
*
|
|
|
|
|
* Return value: enumerated value
|
|
|
|
|
*
|
|
|
|
|
* Since: 1.0
|
|
|
|
|
**/
|
|
|
|
|
UpDeviceLevel
|
|
|
|
|
up_device_level_from_string (const gchar *level)
|
|
|
|
|
{
|
|
|
|
|
if (level == NULL)
|
|
|
|
|
return UP_DEVICE_LEVEL_UNKNOWN;
|
2017-04-10 10:37:32 +02:00
|
|
|
if (g_str_equal (level, "unknown"))
|
2013-10-11 11:20:37 +02:00
|
|
|
return UP_DEVICE_LEVEL_UNKNOWN;
|
2017-04-10 10:37:32 +02:00
|
|
|
if (g_str_equal (level, "none"))
|
2013-10-11 11:20:37 +02:00
|
|
|
return UP_DEVICE_LEVEL_NONE;
|
2017-04-10 10:37:32 +02:00
|
|
|
if (g_str_equal (level, "discharging"))
|
2013-10-14 14:33:54 +02:00
|
|
|
return UP_DEVICE_LEVEL_DISCHARGING;
|
2017-04-10 10:37:32 +02:00
|
|
|
if (g_str_equal (level, "low"))
|
2013-10-11 11:20:37 +02:00
|
|
|
return UP_DEVICE_LEVEL_LOW;
|
2017-04-10 10:37:32 +02:00
|
|
|
if (g_str_equal (level, "critical"))
|
2013-10-11 11:20:37 +02:00
|
|
|
return UP_DEVICE_LEVEL_CRITICAL;
|
2017-04-10 10:37:32 +02:00
|
|
|
if (g_str_equal (level, "action"))
|
2013-10-11 11:20:37 +02:00
|
|
|
return UP_DEVICE_LEVEL_ACTION;
|
2017-04-10 10:37:32 +02:00
|
|
|
if (g_str_equal (level, "normal"))
|
2017-04-04 18:16:10 +02:00
|
|
|
return UP_DEVICE_LEVEL_NORMAL;
|
2017-04-10 10:37:32 +02:00
|
|
|
if (g_str_equal (level, "high"))
|
2017-04-04 18:16:10 +02:00
|
|
|
return UP_DEVICE_LEVEL_HIGH;
|
2017-04-10 10:37:32 +02:00
|
|
|
if (g_str_equal (level, "full"))
|
2017-04-04 18:16:10 +02:00
|
|
|
return UP_DEVICE_LEVEL_FULL;
|
2013-10-11 11:20:37 +02:00
|
|
|
return UP_DEVICE_LEVEL_UNKNOWN;
|
|
|
|
|
}
|