dom/system/gonk/nsIRadioInterfaceLayer.idl
author Edgar Chen <echen@mozilla.com>
Wed, 02 Jul 2014 18:08:59 +0800
changeset 224036 e31b86ef0e80e3e281a0c4ab50ef4cda61cd0240
parent 216080 6474f3075112c5ea240a86b1916074db4db07530
child 224047 de824c1ec349b605618a5641bd4aa81e18c56775
permissions -rw-r--r--
Bug 843452 - Part 4-1: Interface changes for gonk backend. r=hsinyi

/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

#include "nsISupports.idl"
#include "nsINetworkManager.idl"

interface nsIDOMMozIccInfo;
interface nsIMobileConnectionInfo;
interface nsIMobileMessageCallback;
interface nsINeighboringCellIdsCallback;
interface nsICellInfoListCallback;

[scriptable, uuid(6e0f45b8-410e-11e3-8c8e-b715b2cd0128)]
interface nsIRilNetworkInterface : nsINetworkInterface
{
  readonly attribute unsigned long serviceId;
  readonly attribute DOMString iccId;

  /* The following attributes are for MMS proxy settings. */
  readonly attribute DOMString mmsc;     // Empty string if not set.
  readonly attribute DOMString mmsProxy; // Empty string if not set.
  readonly attribute long      mmsPort;  // -1 if not set.
};

[scriptable, uuid(c0c5cb9f-6372-4b5a-b74c-baacc2da5e4f)]
interface nsIVoicemailInfo : nsISupports
{
  readonly attribute DOMString number;

  readonly attribute DOMString displayName;
};

[scriptable, uuid(0226a2c1-a3b9-416a-92cb-c89e4dad4be0)]
interface nsIRilContext : nsISupports
{
  readonly attribute DOMString cardState;

  readonly attribute DOMString imsi;

  readonly attribute nsIDOMMozIccInfo iccInfo;
};

[scriptable, function, uuid(3bc96351-53b0-47a1-a888-c74c64b60f25)]
interface nsIRilSendWorkerMessageCallback : nsISupports
{
  boolean handleResponse(in jsval response);
};

[scriptable, uuid(c13a8890-797b-4557-b92f-6b959f56c1d8)]
interface nsIRadioInterface : nsISupports
{
  readonly attribute nsIRilContext rilContext;

  /**
   * PDP APIs
   */
  void setupDataCallByType(in DOMString apntype);
  void deactivateDataCallByType(in DOMString apntype);
  long getDataCallStateByType(in DOMString apntype);

  void updateRILNetworkInterface();

  /**
   * SMS-related functionality.
   */
  void getSegmentInfoForText(in DOMString text,
                             in nsIMobileMessageCallback request);

  void sendSMS(in DOMString number,
               in DOMString message,
               in boolean silent,
               in nsIMobileMessageCallback request);

  void sendWorkerMessage(in DOMString type,
              [optional] in jsval message,
              [optional] in nsIRilSendWorkerMessageCallback callback);

  void getSmscAddress(in nsIMobileMessageCallback request);

  /**
   * Request neighboring cell ids in GSM/UMTS network.
   */
  void getNeighboringCellIds(in nsINeighboringCellIdsCallback callback);

  /**
   * Request all of the current cell information known to the radio, including
   * neighboring cells.
   */
  void getCellInfoList(in nsICellInfoListCallback callback);
};

[scriptable, uuid(78b65e8c-68e7-4510-9a05-65bba12b283e)]
interface nsIRadioInterfaceLayer : nsISupports
{
  readonly attribute unsigned long numRadioInterfaces;

  nsIRadioInterface getRadioInterface(in unsigned long clientId);

  /**
   * Select a proper client for dialing emergency call.
   *
   * @return clientId or -1 if none of the clients are avaialble.
   */
  unsigned long getClientIdForEmergencyCall();

  void setMicrophoneMuted(in boolean muted);
};