| /* -*- 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_EPS, |
| 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_MODEM_FIRMWARE_FASTBOOT, |
| 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_PCO, |
| /* 3GPP EPS section */ |
| MMC_F_3GPP_EPS_UE_MODE, |
| MMC_F_3GPP_EPS_INITIAL_BEARER_PATH, |
| MMC_F_3GPP_EPS_BEARER_SETTINGS_APN, |
| MMC_F_3GPP_EPS_BEARER_SETTINGS_IP_TYPE, |
| MMC_F_3GPP_EPS_BEARER_SETTINGS_USER, |
| MMC_F_3GPP_EPS_BEARER_SETTINGS_PASSWORD, |
| /* 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 status section */ |
| MMC_F_FIRMWARE_LIST, |
| MMC_F_FIRMWARE_METHOD, |
| MMC_F_FIRMWARE_DEVICE_IDS, |
| MMC_F_FIRMWARE_VERSION, |
| MMC_F_FIRMWARE_FASTBOOT_AT, |
| /* Bearer general section */ |
| MMC_F_BEARER_GENERAL_DBUS_PATH, |
| MMC_F_BEARER_GENERAL_TYPE, |
| /* 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 */ |