diff options
Diffstat (limited to 'cli/mmcli-output.h')
-rw-r--r-- | cli/mmcli-output.h | 324 |
1 files changed, 324 insertions, 0 deletions
diff --git a/cli/mmcli-output.h b/cli/mmcli-output.h new file mode 100644 index 000000000..374af66f0 --- /dev/null +++ b/cli/mmcli-output.h @@ -0,0 +1,324 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * mmcli -- Control modem status & access information from the command line + * + * 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, see <http://www.gnu.org/licenses/>. + * + * Copyright (C) 2018 Aleksander Morgado <aleksander@aleksander.es> + */ + +#ifndef MMCLI_OUTPUT_H +#define MMCLI_OUTPUT_H + +#define _LIBMM_INSIDE_MMCLI +#include <libmm-glib.h> + +/******************************************************************************/ +/* List of sections (grouped fields) displayed in the human-friendly output */ + +typedef enum { + MMC_S_UNKNOWN = -1, + /* Modem object related sections */ + MMC_S_MODEM_GENERAL = 0, + MMC_S_MODEM_HARDWARE, + MMC_S_MODEM_SYSTEM, + MMC_S_MODEM_NUMBERS, + MMC_S_MODEM_STATUS, + MMC_S_MODEM_MODES, + MMC_S_MODEM_BANDS, + MMC_S_MODEM_IP, + MMC_S_MODEM_3GPP, + MMC_S_MODEM_3GPP_SCAN, + MMC_S_MODEM_3GPP_USSD, + MMC_S_MODEM_CDMA, + MMC_S_MODEM_SIM, + MMC_S_MODEM_BEARER, + MMC_S_MODEM_TIME, + MMC_S_MODEM_TIMEZONE, + MMC_S_MODEM_MESSAGING, + MMC_S_MODEM_SIGNAL, + MMC_S_MODEM_SIGNAL_CDMA1X, + MMC_S_MODEM_SIGNAL_EVDO, + MMC_S_MODEM_SIGNAL_GSM, + MMC_S_MODEM_SIGNAL_UMTS, + MMC_S_MODEM_SIGNAL_LTE, + MMC_S_MODEM_OMA, + MMC_S_MODEM_OMA_CURRENT, + MMC_S_MODEM_OMA_PENDING, + MMC_S_MODEM_LOCATION, + MMC_S_MODEM_LOCATION_3GPP, + MMC_S_MODEM_LOCATION_GPS, + MMC_S_MODEM_LOCATION_CDMABS, + MMC_S_MODEM_FIRMWARE, + MMC_S_BEARER_GENERAL, + MMC_S_BEARER_STATUS, + MMC_S_BEARER_PROPERTIES, + MMC_S_BEARER_IPV4_CONFIG, + MMC_S_BEARER_IPV6_CONFIG, + MMC_S_BEARER_STATS, + MMC_S_CALL_GENERAL, + MMC_S_CALL_PROPERTIES, + MMC_S_CALL_AUDIO_FORMAT, + MMC_S_SMS_GENERAL, + MMC_S_SMS_CONTENT, + MMC_S_SMS_PROPERTIES, + MMC_S_SIM_GENERAL, + MMC_S_SIM_PROPERTIES, +} MmcS; + +/******************************************************************************/ +/* List of fields */ + +typedef enum { + MMC_F_UNKNOWN = -1, + /* General section */ + MMC_F_GENERAL_DBUS_PATH = 0, + MMC_F_GENERAL_DEVICE_ID, + /* Hardware section */ + MMC_F_HARDWARE_MANUFACTURER, + MMC_F_HARDWARE_MODEL, + MMC_F_HARDWARE_REVISION, + MMC_F_HARDWARE_HW_REVISION, + MMC_F_HARDWARE_SUPPORTED_CAPABILITIES, + MMC_F_HARDWARE_CURRENT_CAPABILITIES, + MMC_F_HARDWARE_EQUIPMENT_ID, + /* System section */ + MMC_F_SYSTEM_DEVICE, + MMC_F_SYSTEM_DRIVERS, + MMC_F_SYSTEM_PLUGIN, + MMC_F_SYSTEM_PRIMARY_PORT, + MMC_F_SYSTEM_PORTS, + /* Numbers section */ + MMC_F_NUMBERS_OWN, + /* Status section */ + MMC_F_STATUS_LOCK, + MMC_F_STATUS_UNLOCK_RETRIES, + MMC_F_STATUS_STATE, + MMC_F_STATUS_FAILED_REASON, + MMC_F_STATUS_POWER_STATE, + MMC_F_STATUS_ACCESS_TECH, + MMC_F_STATUS_SIGNAL_QUALITY_VALUE, + MMC_F_STATUS_SIGNAL_QUALITY_RECENT, + /* Modes section */ + MMC_F_MODES_SUPPORTED, + MMC_F_MODES_CURRENT, + /* Bands section */ + MMC_F_BANDS_SUPPORTED, + MMC_F_BANDS_CURRENT, + /* IP section */ + MMC_F_IP_SUPPORTED, + /* 3GPP section */ + MMC_F_3GPP_IMEI, + MMC_F_3GPP_ENABLED_LOCKS, + MMC_F_3GPP_OPERATOR_ID, + MMC_F_3GPP_OPERATOR_NAME, + MMC_F_3GPP_REGISTRATION, + MMC_F_3GPP_EPS_UE_MODE, + MMC_F_3GPP_PCO, + /* 3GPP scan section */ + MMC_F_3GPP_SCAN_NETWORKS, + /* USSD section */ + MMC_F_3GPP_USSD_STATUS, + MMC_F_3GPP_USSD_NETWORK_REQUEST, + MMC_F_3GPP_USSD_NETWORK_NOTIFICATION, + /* CDMA section */ + MMC_F_CDMA_MEID, + MMC_F_CDMA_ESN, + MMC_F_CDMA_SID, + MMC_F_CDMA_NID, + MMC_F_CDMA_REGISTRATION_CDMA1X, + MMC_F_CDMA_REGISTRATION_EVDO, + MMC_F_CDMA_ACTIVATION, + /* SIM section */ + MMC_F_SIM_PATH, + /* Bearer section */ + MMC_F_BEARER_PATHS, + /* Time section */ + MMC_F_TIME_CURRENT, + MMC_F_TIMEZONE_CURRENT, + MMC_F_TIMEZONE_DST_OFFSET, + MMC_F_TIMEZONE_LEAP_SECONDS, + /* Messaging section */ + MMC_F_MESSAGING_SUPPORTED_STORAGES, + MMC_F_MESSAGING_DEFAULT_STORAGES, + /* Signal section */ + MMC_F_SIGNAL_REFRESH_RATE, + MMC_F_SIGNAL_CDMA1X_RSSI, + MMC_F_SIGNAL_CDMA1X_ECIO, + MMC_F_SIGNAL_EVDO_RSSI, + MMC_F_SIGNAL_EVDO_ECIO, + MMC_F_SIGNAL_EVDO_SINR, + MMC_F_SIGNAL_EVDO_IO, + MMC_F_SIGNAL_GSM_RSSI, + MMC_F_SIGNAL_UMTS_RSSI, + MMC_F_SIGNAL_UMTS_RSCP, + MMC_F_SIGNAL_UMTS_ECIO, + MMC_F_SIGNAL_LTE_RSSI, + MMC_F_SIGNAL_LTE_RSRQ, + MMC_F_SIGNAL_LTE_RSRP, + MMC_F_SIGNAL_LTE_SNR, + /* OMA section */ + MMC_F_OMA_FEATURES, + MMC_F_OMA_CURRENT_TYPE, + MMC_F_OMA_CURRENT_STATE, + MMC_F_OMA_PENDING_SESSIONS, + /* Location status section */ + MMC_F_LOCATION_CAPABILITIES, + MMC_F_LOCATION_ENABLED, + MMC_F_LOCATION_SIGNALS, + MMC_F_LOCATION_GPS_REFRESH_RATE, + MMC_F_LOCATION_GPS_SUPL_SERVER, + MMC_F_LOCATION_GPS_ASSISTANCE, + MMC_F_LOCATION_GPS_ASSISTANCE_SERVERS, + MMC_F_LOCATION_3GPP_MCC, + MMC_F_LOCATION_3GPP_MNC, + MMC_F_LOCATION_3GPP_LAC, + MMC_F_LOCATION_3GPP_TAC, + MMC_F_LOCATION_3GPP_CID, + MMC_F_LOCATION_GPS_NMEA, + MMC_F_LOCATION_GPS_UTC, + MMC_F_LOCATION_GPS_LONG, + MMC_F_LOCATION_GPS_LAT, + MMC_F_LOCATION_GPS_ALT, + MMC_F_LOCATION_CDMABS_LONG, + MMC_F_LOCATION_CDMABS_LAT, + /* Firmware list */ + MMC_F_FIRMWARE_LIST, + /* Bearer general section */ + MMC_F_BEARER_GENERAL_DBUS_PATH, + /* Bearer status section */ + MMC_F_BEARER_STATUS_CONNECTED, + MMC_F_BEARER_STATUS_SUSPENDED, + MMC_F_BEARER_STATUS_INTERFACE, + MMC_F_BEARER_STATUS_IP_TIMEOUT, + /* Bearer properties section */ + MMC_F_BEARER_PROPERTIES_APN, + MMC_F_BEARER_PROPERTIES_ROAMING, + MMC_F_BEARER_PROPERTIES_IP_TYPE, + MMC_F_BEARER_PROPERTIES_USER, + MMC_F_BEARER_PROPERTIES_PASSWORD, + MMC_F_BEARER_PROPERTIES_NUMBER, + MMC_F_BEARER_PROPERTIES_RM_PROTOCOL, + MMC_F_BEARER_IPV4_CONFIG_METHOD, + MMC_F_BEARER_IPV4_CONFIG_ADDRESS, + MMC_F_BEARER_IPV4_CONFIG_PREFIX, + MMC_F_BEARER_IPV4_CONFIG_GATEWAY, + MMC_F_BEARER_IPV4_CONFIG_DNS, + MMC_F_BEARER_IPV4_CONFIG_MTU, + MMC_F_BEARER_IPV6_CONFIG_METHOD, + MMC_F_BEARER_IPV6_CONFIG_ADDRESS, + MMC_F_BEARER_IPV6_CONFIG_PREFIX, + MMC_F_BEARER_IPV6_CONFIG_GATEWAY, + MMC_F_BEARER_IPV6_CONFIG_DNS, + MMC_F_BEARER_IPV6_CONFIG_MTU, + MMC_F_BEARER_STATS_DURATION, + MMC_F_BEARER_STATS_BYTES_RX, + MMC_F_BEARER_STATS_BYTES_TX, + MMC_F_CALL_GENERAL_DBUS_PATH, + MMC_F_CALL_PROPERTIES_NUMBER, + MMC_F_CALL_PROPERTIES_DIRECTION, + MMC_F_CALL_PROPERTIES_STATE, + MMC_F_CALL_PROPERTIES_STATE_REASON, + MMC_F_CALL_PROPERTIES_AUDIO_PORT, + MMC_F_CALL_AUDIO_FORMAT_ENCODING, + MMC_F_CALL_AUDIO_FORMAT_RESOLUTION, + MMC_F_CALL_AUDIO_FORMAT_RATE, + MMC_F_SMS_GENERAL_DBUS_PATH, + MMC_F_SMS_CONTENT_NUMBER, + MMC_F_SMS_CONTENT_TEXT, + MMC_F_SMS_CONTENT_DATA, + MMC_F_SMS_PROPERTIES_PDU_TYPE, + MMC_F_SMS_PROPERTIES_STATE, + MMC_F_SMS_PROPERTIES_VALIDITY, + MMC_F_SMS_PROPERTIES_STORAGE, + MMC_F_SMS_PROPERTIES_SMSC, + MMC_F_SMS_PROPERTIES_CLASS, + MMC_F_SMS_PROPERTIES_TELESERVICE_ID, + MMC_F_SMS_PROPERTIES_SERVICE_CATEGORY, + MMC_F_SMS_PROPERTIES_DELIVERY_REPORT, + MMC_F_SMS_PROPERTIES_MSG_REFERENCE, + MMC_F_SMS_PROPERTIES_TIMESTAMP, + MMC_F_SMS_PROPERTIES_DELIVERY_STATE, + MMC_F_SMS_PROPERTIES_DISCH_TIMESTAMP, + MMC_F_SIM_GENERAL_DBUS_PATH, + MMC_F_SIM_PROPERTIES_IMSI, + MMC_F_SIM_PROPERTIES_ICCID, + MMC_F_SIM_PROPERTIES_OPERATOR_ID, + MMC_F_SIM_PROPERTIES_OPERATOR_NAME, + /* Lists */ + MMC_F_MODEM_LIST_DBUS_PATH, + MMC_F_SMS_LIST_DBUS_PATH, + MMC_F_CALL_LIST_DBUS_PATH, +} MmcF; + +/******************************************************************************/ +/* Output type selection */ + +typedef enum { + MMC_OUTPUT_TYPE_NONE, + MMC_OUTPUT_TYPE_HUMAN, + MMC_OUTPUT_TYPE_KEYVALUE, +} MmcOutputType; + +void mmcli_output_set (MmcOutputType type); +MmcOutputType mmcli_output_get (void); + +/******************************************************************************/ +/* Generic output management */ + +void mmcli_output_string (MmcF field, + const gchar *str); +void mmcli_output_string_take (MmcF field, + gchar *str); +void mmcli_output_string_list (MmcF field, + const gchar *str); +void mmcli_output_string_list_take (MmcF field, + gchar *str); +void mmcli_output_string_multiline (MmcF field, + const gchar *str); +void mmcli_output_string_multiline_take (MmcF field, + gchar *str); +void mmcli_output_string_array (MmcF field, + const gchar **strv, + gboolean multiline); +void mmcli_output_string_array_take (MmcF field, + gchar **strv, + gboolean multiline); +void mmcli_output_string_take_typed (MmcF field, + gchar *value, + const gchar *type); +void mmcli_output_listitem (MmcF field, + const gchar *prefix, + const gchar *value, + const gchar *extra); + +/******************************************************************************/ +/* Custom output management */ + +void mmcli_output_signal_quality (guint value, + gboolean recent); +void mmcli_output_state (MMModemState state, + MMModemStateFailedReason reason); +void mmcli_output_scan_networks (GList *network_list); +void mmcli_output_firmware_list (GList *firmware_list, + MMFirmwareProperties *selected); +void mmcli_output_pco_list (GList *pco_list); + +/******************************************************************************/ +/* Dump output */ + +void mmcli_output_dump (void); +void mmcli_output_list_dump (MmcF field); + +#endif /* MMCLI_OUTPUT_H */ |