/* 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" interface nsIArray; %{C++ #define INPUTPORT_DATA_CID \ { 0x90b192d1, 0x357a, 0x4793, { 0xab, 0x58, 0x04, 0xee, 0x21, 0x62, 0x27, 0xda } } #define INPUTPORT_DATA_CONTRACTID \ "@mozilla.org/inputport/inputportdata;1" %} /** * XPCOM component which acts as the container for input port data. */ [scriptable, builtinclass, uuid(244a2b1d-aa1f-4188-a639-ddb56c554b6d)] interface nsIInputPortData : nsISupports { attribute DOMString id; attribute DOMString type; attribute boolean connected; }; [builtinclass, uuid(32a62e7c-f698-4846-81f7-617c87854d32)] interface nsIInputPortListener : nsISupports { void notifyConnectionChanged(in DOMString portId, in boolean isConnected); }; [builtinclass, uuid(c2a47757-25f6-4bc8-bd27-c23af2d87381)] interface nsIInputPortServiceCallback : nsISupports { const unsigned short INPUTPORT_ERROR_OK = 0; const unsigned short INPUTPORT_ERROR_FAILURE = 1; const unsigned short INPUTPORT_ERROR_INVALID_ARG = 2; const unsigned short INPUTPORT_ERROR_NOT_SUPPORTED = 3; /** * Called when something wrong happens. * * @param errorCode Error code listed above from the underlying layer. */ void notifyError(in unsigned short errorCode); /** * Called when the operation succeeds. * * @param dataList A list of data. * An array of |nsIInputPortData| when used for |getInputPorts()|. * * NOTE: |nsIArray| is adopted to prevent this interface from being split into * multiple interfaces with different |notifySuccess|. Though the * implementation of TV service may need |nsIMutableArray| to fill in the * array, it doesn't seem necessary for other places to use the mutable one. */ void notifySuccess([optional] in nsIArray dataList); }; %{C++ #define INPUTPORT_SERVICE_CONTRACTID \ "@mozilla.org/inputport/inputportservice;1" %} [uuid(6214dae0-840e-11e4-b4a9-0800200c9a66)] interface nsIInputPortService : nsISupports { attribute nsIInputPortListener inputPortListener; void getInputPorts(in nsIInputPortServiceCallback callback); };