static void
modem_sim_service_class_init (ModemSIMServiceClass *klass)
{
  GObjectClass *object_class = G_OBJECT_CLASS (klass);
  ModemOfaceClass *oface_class = MODEM_OFACE_CLASS (klass);

  DEBUG ("enter");

  object_class->get_property = modem_sim_service_get_property;
  object_class->set_property = modem_sim_service_set_property;
  object_class->constructed = modem_sim_service_constructed;
  object_class->dispose = modem_sim_service_dispose;
  object_class->finalize = modem_sim_service_finalize;

  oface_class->ofono_interface = MODEM_OFACE_SIM;
  oface_class->property_mapper = modem_sim_service_property_mapper;
  oface_class->connect = modem_sim_service_connect;
  oface_class->connected = modem_sim_service_connected;
  oface_class->disconnect = modem_sim_service_disconnect;

  /* Properties */
  g_object_class_install_property (object_class, PROP_STATUS,
      g_param_spec_uint ("state",
          "SIM Status",
          "Current state of Subscriber identity module.",
          MODEM_SIM_STATE_UNKNOWN,
          LAST_MODEM_SIM_STATE - 1,
          MODEM_SIM_STATE_UNKNOWN,
          G_PARAM_READWRITE |
          G_PARAM_STATIC_STRINGS));

  g_object_class_install_property (object_class, PROP_IMSI,
      g_param_spec_string ("imsi",
          "IMSI",
          "Internation Mobile Subscriber Identity",
          "", /* default value */
          G_PARAM_READWRITE | G_PARAM_CONSTRUCT |
          G_PARAM_STATIC_STRINGS));

  signals[SIGNAL_STATUS] =
    g_signal_new ("state",
        G_OBJECT_CLASS_TYPE (klass),
        G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
        0,
        NULL, NULL,
        g_cclosure_marshal_VOID__UINT,
        G_TYPE_NONE, 1,
        G_TYPE_UINT);

  g_type_class_add_private (klass, sizeof (ModemSIMServicePrivate));

  modem_error_domain_prefix (0); /* Init errors */
}
static void
modem_class_init (ModemClass *klass)
{
  GObjectClass *object_class = G_OBJECT_CLASS (klass);
  ModemOfaceClass *oface_class = MODEM_OFACE_CLASS (klass);

  DEBUG ("enter");

  object_class->constructed = modem_constructed;
  object_class->dispose = modem_dispose;
  object_class->finalize = modem_finalize;
  object_class->get_property = modem_get_property;
  object_class->set_property = modem_set_property;

  oface_class->ofono_interface = MODEM_OFACE_MODEM;
  oface_class->property_mapper = modem_property_mapper;
  oface_class->connect = modem_connect;
  oface_class->disconnect = modem_disconnect;

  g_type_class_add_private (klass, sizeof (ModemPrivate));

  signals[SIGNAL_INTERFACE_ADDED] = g_signal_new ("interface-added",
      G_OBJECT_CLASS_TYPE (klass),
      G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
      0,
      NULL, NULL,
      g_cclosure_marshal_VOID__OBJECT,
      G_TYPE_NONE, 1, G_TYPE_OBJECT);

  signals[SIGNAL_INTERFACE_REMOVED] = g_signal_new ("interface-removed",
      G_OBJECT_CLASS_TYPE (klass),
      G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
      0,
      NULL, NULL,
      g_cclosure_marshal_VOID__OBJECT,
      G_TYPE_NONE, 1, G_TYPE_OBJECT);

  signals[SIGNAL_IMSI_ADDED] = g_signal_new ("imsi-added",
      G_OBJECT_CLASS_TYPE (klass),
      G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
      0,
      NULL, NULL,
      g_cclosure_marshal_VOID__STRING,
      G_TYPE_NONE, 1, G_TYPE_STRING);

  g_object_class_install_property (object_class, PROP_POWERED,
      g_param_spec_boolean ("powered",
          "Powered",
          "The power state of the modem device",
          FALSE,
          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));

  g_object_class_install_property (object_class, PROP_ONLINE,
      g_param_spec_boolean ("online",
          "Online",
          "The radio state of the modem. Online is false in flight mode.",
          FALSE,
          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));

  g_object_class_install_property (object_class, PROP_NAME,
      g_param_spec_string ("name",
          "Name",
          "Friendly name of the modem device.",
          "",
          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));

  g_object_class_install_property (object_class, PROP_MANUFACTURER,
      g_param_spec_string ("manufacturer",
          "Manufacturer",
          "The manufacturer of the modem device.",
          "",
          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));

  g_object_class_install_property (object_class, PROP_MODEL,
      g_param_spec_string ("model",
          "Model",
          "The model of the modem device.",
          "",
          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));

  g_object_class_install_property (object_class, PROP_REVISION,
      g_param_spec_string ("revision",
          "Revision",
          "The revision of the modem device.",
          "",
          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));

  g_object_class_install_property (object_class, PROP_IMEI,
      g_param_spec_string ("imei",
          "Serial",
          "The IMEI (serial number) of the modem device.",
          "",
          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));

  g_object_class_install_property (object_class, PROP_FEATURES,
      g_param_spec_boxed ("features",
          "Features",
          "List of currently enabled features with simple "
          "string abbreviations like 'sms', 'sim' etc.",
          G_TYPE_STRV,
          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));

  /* XXX/KV: should this be removed as this is oFono-specific */
  g_object_class_install_property (object_class, PROP_INTERFACES,
      g_param_spec_boxed ("interfaces",
          "Interfaces",
          "Set of interfaces currently supported by the modem. "
          "The set depends on the state of the device "
          "(registration status, SIM inserted status, "
          "network capabilities, device capabilities, etc.)",
          G_TYPE_STRV,
          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
}
示例#3
0
static void
modem_call_service_class_init (ModemCallServiceClass *klass)
{
  GObjectClass *object_class = G_OBJECT_CLASS (klass);
  ModemOfaceClass *oface_class = MODEM_OFACE_CLASS (klass);

  DEBUG ("enter");

  g_type_class_add_private (klass, sizeof (ModemCallServicePrivate));

  object_class->constructed = modem_call_service_constructed;
  object_class->get_property = modem_call_service_get_property;
  object_class->set_property = modem_call_service_set_property;
  object_class->dispose = modem_call_service_dispose;
  object_class->finalize = modem_call_service_finalize;

  oface_class->ofono_interface = MODEM_OFACE_CALL_MANAGER;
  oface_class->property_mapper = modem_call_service_property_mapper;
  oface_class->connect = modem_call_service_connect;
  oface_class->disconnect = modem_call_service_disconnect;

  /* Properties */
  g_object_class_install_property (object_class, PROP_EMERGENCY_NUMBERS,
      g_param_spec_boxed ("emergency-numbers",
          "Emergency Numbers",
          "List of emergency numbers obtained from modem",
          G_TYPE_STRV,
          G_PARAM_READWRITE | G_PARAM_CONSTRUCT |
          G_PARAM_STATIC_STRINGS));

  /* Signals to emit */
  signals[SIGNAL_INCOMING] =
    g_signal_new ("incoming", G_OBJECT_CLASS_TYPE (klass),
        G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
        0,
        NULL, NULL,
        _modem__marshal_VOID__OBJECT_STRING,
        G_TYPE_NONE, 2,
        MODEM_TYPE_CALL, G_TYPE_STRING);

  signals[SIGNAL_CREATED] =
    g_signal_new ("created", G_OBJECT_CLASS_TYPE (klass),
        G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
        0,
        NULL, NULL,
        _modem__marshal_VOID__OBJECT_STRING,
        G_TYPE_NONE, 2,
        MODEM_TYPE_CALL, G_TYPE_STRING);

  signals[SIGNAL_REMOVED] =
    g_signal_new ("removed", G_OBJECT_CLASS_TYPE (klass),
        G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
        0,
        NULL, NULL,
        _modem__marshal_VOID__OBJECT,
        G_TYPE_NONE, 1,
        MODEM_TYPE_CALL);

  signals[SIGNAL_USER_CONNECTION] =
    g_signal_new ("user-connection", G_OBJECT_CLASS_TYPE (klass),
        G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
        0,
        NULL, NULL,
        g_cclosure_marshal_VOID__BOOLEAN,
        G_TYPE_NONE, 1,
        G_TYPE_BOOLEAN);

  DEBUG ("leave");
}
static void
modem_call_class_init (ModemCallClass *klass)
{
  GObjectClass *object_class = G_OBJECT_CLASS (klass);
  ModemOfaceClass *oface_class = MODEM_OFACE_CLASS (klass);

  g_type_class_add_private (klass, sizeof (ModemCallPrivate));

  object_class->constructed = modem_call_constructed;
  object_class->dispose = modem_call_dispose;
  object_class->finalize = modem_call_finalize;
  object_class->get_property = modem_call_get_property;
  object_class->set_property = modem_call_set_property;

  oface_class->ofono_interface = MODEM_OFACE_CALL;
  oface_class->property_mapper = modem_call_property_mapper;
  oface_class->connect = modem_call_connect;
  oface_class->connected = modem_call_connected;
  oface_class->disconnect = modem_call_disconnect;

  /* Properties */
  g_object_class_install_property (object_class, PROP_SERVICE,
      g_param_spec_object ("call-service",
          "Call service",
          "The call service object that owns "
          "the modem call object",
          MODEM_TYPE_CALL_SERVICE,
          G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
          G_PARAM_STATIC_STRINGS));

  g_object_class_install_property (object_class, PROP_OFONO_STATE,
      g_param_spec_string ("ofono-state",
          "Call State String",
          "State name of the call instance",
          NULL,
          G_PARAM_READWRITE |
          G_PARAM_STATIC_STRINGS));

  g_object_class_install_property (object_class, PROP_STATE,
      g_param_spec_uint ("state",
          "Call state",
          "State of the call instance",
          MODEM_CALL_STATE_INVALID,
          MODEM_CALL_STATE_DISCONNECTED,
          MODEM_CALL_STATE_INVALID,
          G_PARAM_READWRITE |
          G_PARAM_STATIC_STRINGS));

  g_object_class_install_property (object_class, PROP_CAUSE,
      g_param_spec_uint ("cause",
          "Call cause",
          "Cause of the latest state transition",
          0, 255, 0,
          G_PARAM_READWRITE |
          G_PARAM_STATIC_STRINGS));

  g_object_class_install_property (object_class, PROP_CAUSETYPE,
      g_param_spec_uint ("causetype",
          "Call cause type",
          "Source of the latest state transition",
          0, MODEM_CALL_CAUSE_TYPE_UNKNOWN, 0,
          G_PARAM_READWRITE |
          G_PARAM_STATIC_STRINGS));

  g_object_class_install_property (object_class, PROP_ORIGINATING,
      g_param_spec_boolean ("originating",
          "Originated Call",
          "Terminal is originating this call",
          FALSE,
          G_PARAM_READWRITE |
          G_PARAM_STATIC_STRINGS));

  g_object_class_install_property (object_class, PROP_TERMINATING,
      g_param_spec_boolean ("terminating",
          "Terminating Call",
          "Terminal is terminating this call",
          FALSE,
          G_PARAM_READWRITE |
          G_PARAM_STATIC_STRINGS));

  g_object_class_install_property (object_class, PROP_EMERGENCY,
      g_param_spec_string ("emergency",
          "Emergency Service",
          "Emergency Service for this call",
          NULL,
          G_PARAM_READWRITE |
          G_PARAM_STATIC_STRINGS));

  g_object_class_install_property (object_class, PROP_ONHOLD,
      g_param_spec_boolean ("onhold",
          "Call is On Hold",
          "This call has been put on hold by remote party",
          FALSE,
          G_PARAM_READWRITE |
          G_PARAM_STATIC_STRINGS));

  g_object_class_install_property (object_class, PROP_MULTIPARTY,
      g_param_spec_boolean ("multiparty",
          "Multiparty Membership",
          "This instance is a member of a conference call",
          FALSE,
          G_PARAM_READWRITE |
          G_PARAM_STATIC_STRINGS));

  g_object_class_install_property (object_class, PROP_REMOTE,
      g_param_spec_string ("remote",
          "Remote Party Address",
          "Address of remote party associated with this call",
          NULL,
          G_PARAM_READWRITE |
          G_PARAM_STATIC_STRINGS));

  g_object_class_install_property (object_class, PROP_START_TIME,
      g_param_spec_string ("start-time",
          "Start Time",
          "The time the call started",
          NULL,
          G_PARAM_READWRITE |
          G_PARAM_STATIC_STRINGS));

  call_signals[SIGNAL_STATE] =
    g_signal_new ("state", G_OBJECT_CLASS_TYPE (klass),
        G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
        0,
        NULL, NULL,
        g_cclosure_marshal_VOID__UINT,
        G_TYPE_NONE, 1,
        G_TYPE_UINT);

  /* XXX: not implemented */
  call_signals[SIGNAL_WAITING] =
    g_signal_new ("waiting", G_OBJECT_CLASS_TYPE (klass),
        G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
        0,
        NULL, NULL,
        g_cclosure_marshal_VOID__VOID,
        G_TYPE_NONE, 0);

  /* XXX: not implemented */
  call_signals[SIGNAL_EMERGENCY] =
    g_signal_new ("emergency", G_OBJECT_CLASS_TYPE (klass),
        G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
        0,
        NULL, NULL,
        g_cclosure_marshal_VOID__STRING,
        G_TYPE_NONE, 1,
        G_TYPE_STRING);

  /* XXX: not implemented */
  call_signals[SIGNAL_TERMINATED] =
    g_signal_new ("terminated", G_OBJECT_CLASS_TYPE (klass),
        G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
        0,
        NULL, NULL,
        g_cclosure_marshal_VOID__VOID,
        G_TYPE_NONE, 0);

  /* XXX: not implemented */
  call_signals[SIGNAL_ON_HOLD] =
    g_signal_new ("on-hold", G_OBJECT_CLASS_TYPE (klass),
        G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
        0,
        NULL, NULL,
        g_cclosure_marshal_VOID__BOOLEAN,
        G_TYPE_NONE, 1,
        G_TYPE_BOOLEAN);

  /* XXX: not implemented */
  call_signals[SIGNAL_FORWARDED] =
    g_signal_new ("forwarded", G_OBJECT_CLASS_TYPE (klass),
        G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
        0,
        NULL, NULL,
        g_cclosure_marshal_VOID__VOID,
        G_TYPE_NONE, 0);

  /* XXX: not implemented */
  call_signals[SIGNAL_DIALSTRING] =
    g_signal_new ("dialstring", G_OBJECT_CLASS_TYPE (klass),
        G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
        0,
        NULL, NULL,
        g_cclosure_marshal_VOID__STRING,
        G_TYPE_NONE, 1,
        G_TYPE_STRING);

  /* XXX: not implemented */
  call_signals[SIGNAL_DTMF_TONE] =
    g_signal_new ("dtmf-tone", G_OBJECT_CLASS_TYPE (klass),
        G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
        0,
        NULL, NULL,
        g_cclosure_marshal_VOID__INT,
        G_TYPE_NONE, 1,
        G_TYPE_INT);
}
/* ------------------------------------------------------------------------- */
static void
modem_sms_service_class_init (ModemSMSServiceClass *klass)
{
  GObjectClass *object_class = G_OBJECT_CLASS (klass);
  ModemOfaceClass *oface_class = MODEM_OFACE_CLASS (klass);

  DEBUG ("enter");

  object_class->get_property = modem_sms_service_get_property;
  object_class->set_property = modem_sms_service_set_property;
  object_class->constructed = modem_sms_service_constructed;
  object_class->dispose = modem_sms_service_dispose;
  object_class->finalize = modem_sms_service_finalize;

  oface_class->ofono_interface = MODEM_OFACE_SMS;
  oface_class->property_mapper = modem_sms_service_property_mapper;
  oface_class->connect = modem_sms_service_connect;
  oface_class->connected = modem_sms_service_connected;
  oface_class->disconnect = modem_sms_service_disconnect;

#if nomore
  g_object_class_install_property (object_class, PROP_CONTENT_TYPES,
      g_param_spec_boxed ("content-types",
          "Content types used",
          "List of MIME content types used by application.",
          G_TYPE_STRV,
          G_PARAM_READWRITE | G_PARAM_CONSTRUCT |
          G_PARAM_STATIC_STRINGS));
#endif

  g_object_class_install_property (object_class, PROP_SMSC,
      g_param_spec_string ("service-centre",
          "SMS Service Centre",
          "ISDN Address for SMS Service Centre",
          "", /* default value */
          G_PARAM_READWRITE | G_PARAM_CONSTRUCT |
          G_PARAM_STATIC_STRINGS));

  g_object_class_install_property (object_class, PROP_VALIDITY_PERIOD,
      g_param_spec_uint ("validity-period",
          "SMS Validity Period",
          "Period while SMS service centre "
          "keep trying to deliver SMS.",
          /* anything above 0 gets rounded up to 5 minutes */
          0,  /* 0 means no validity period */
          63 * 7 * 24 * 60 * 60, /* max - 63 weeks */
          0, /* no validity period - it is up to service centre */
          G_PARAM_READWRITE | G_PARAM_CONSTRUCT |
          G_PARAM_STATIC_STRINGS));

  g_object_class_install_property (object_class, PROP_REDUCED_CHARSET,
      g_param_spec_boolean ("reduced-charset",
          "SMS reduced character set support",
          "Whether SMS should be encoded with "
          "a reduced character set",
          FALSE,
          G_PARAM_READWRITE | G_PARAM_CONSTRUCT |
          G_PARAM_STATIC_STRINGS));

  signals[SIGNAL_IMMEDIATE_MESSAGE] =
    g_signal_new ("immediate-message",
        G_OBJECT_CLASS_TYPE (klass),
        G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
        0,
        NULL, NULL,
        _modem__marshal_VOID__STRING_BOXED,
        G_TYPE_NONE, 2,
        G_TYPE_STRING, G_TYPE_HASH_TABLE);

  signals[SIGNAL_INCOMING_MESSAGE] =
    g_signal_new ("incoming-message",
        G_OBJECT_CLASS_TYPE (klass),
        G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
        0,
        NULL, NULL,
        _modem__marshal_VOID__STRING_BOXED,
        G_TYPE_NONE, 2,
        G_TYPE_STRING, G_TYPE_HASH_TABLE);

#if nomore
  signals[SIGNAL_DELIVER] =
    g_signal_new ("deliver",
        G_OBJECT_CLASS_TYPE (klass),
        G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
        0,
        NULL, NULL,
        g_cclosure_marshal_VOID__OBJECT,
        G_TYPE_NONE, 1,
        G_TYPE_OBJECT);

  signals[SIGNAL_OUTGOING_COMPLETE] =
    g_signal_new ("outgoing-complete",
        G_OBJECT_CLASS_TYPE (klass),
        G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
        0,
        NULL, NULL,
        _modem__marshal_VOID__STRING_STRING,
        G_TYPE_NONE, 2,
        G_TYPE_STRING, G_TYPE_STRING);

  signals[SIGNAL_OUTGOING_ERROR] =
    g_signal_new ("outgoing-error",
        G_OBJECT_CLASS_TYPE (klass),
        G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
        0,
        NULL, NULL,
        _modem__marshal_VOID__STRING_STRING_POINTER,
        G_TYPE_NONE, 3,
        G_TYPE_STRING, G_TYPE_STRING, G_TYPE_POINTER);

  signals[SIGNAL_STATUS_REPORT] =
    g_signal_new ("state-report",
        G_OBJECT_CLASS_TYPE (klass),
        G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
        0,
        NULL, NULL,
        g_cclosure_marshal_VOID__OBJECT,
        G_TYPE_NONE, 1,
        G_TYPE_OBJECT);

#endif

  g_type_class_add_private (klass, sizeof (ModemSMSServicePrivate));
}