API Guide Home
(Online version only)

PmConnectorLibCommon.h

Go to the documentation of this file.
00001 /*******************************************************************************
00002  * Copyright (c) 2004-2005 palmOne, Inc. or its subsidiaries.
00003  * All rights reserved.
00004  ******************************************************************************/
00005 /**
00006  * @defgroup    PmConnectorLib Multi Connector Library
00007  * @brief       This library provides support for multi-connector related functionalities.
00008  *
00009  * Applications can register itself to be notified when a peripheral is attached
00010  * or detached to the multi-connector port. Applications can also use this library
00011  * to enable/disable the power pin and to re-route audio output.
00012  *
00013  * @{
00014  * @}
00015  */
00016 /**
00017  * @ingroup PmConnectorLib
00018  */
00019 
00020 /**
00021  * @file  PmConnectorLibCommon.h
00022  * @brief Public 68k common header file for Multi-Connector Library for palmOne
00023  *        devices that use multi-connector.
00024  *       
00025  * This file contains common structures, types and defines for palmOne library
00026  * that exports multi-connector related APIs.
00027  * <hr>
00028  */
00029 
00030 #ifndef __PMConnectorLIBCOMMON_H__
00031 #define __PMConnectorLIBCOMMON_H__
00032 
00033 #include <NotifyMgr.h>
00034 
00035 /********************************************************************
00036  * Constants
00037  ********************************************************************/
00038 #define kPmConnectorLibType             sysFileTLibrary
00039 #define kPmConnectorLibCreator          'PmAt'
00040 #define kPmConnectorLibName             "PmConnector"
00041 #define kPmConnectorNotifyType              'PmCo'
00042 #define kPmConnectorNotifySysAttach         sysExternalConnectorAttachEvent
00043 #define kPmConnectorNotifySysDetach         sysExternalConnectorDetachEvent
00044 
00045 // Bits used in notifyDetailsP for kPmConnectorNotifySysAttach and kPmConnectorNotifySysDetach
00046 #define kPmDockStatusCharging           0x08
00047 #define kPmDockStatusUSBCradle          0x10
00048 #define kPmDockStatusSerialPeripheral   0x40
00049 
00050 /********************************************************************
00051  * Traps
00052  ********************************************************************/
00053 /**
00054  * @name Function Traps
00055  */
00056 /*@{*/
00057 #define kPmConnectorLibTrapOpen         sysLibTrapOpen
00058 #define kPmConnectorLibTrapClose        sysLibTrapClose
00059 #define kPmConnectorLibTrapSleep        sysLibTrapSleep
00060 #define kPmConnectorLibTrapWake         sysLibTrapWake
00061 #define kPmConnectorLibTrapGetVersion       (sysLibTrapCustom + 0)
00062 #define kPmConnectorLibTrapControl          (sysLibTrapCustom + 1)
00063 #define kPmConnectorLibTrapSetAudioOutput   (sysLibTrapCustom + 2)
00064 #define kPmConnectorLibTrapSetAudioInput    (sysLibTrapCustom + 3)
00065 /*@}*/
00066 
00067 /***********************************************************************
00068  * Library version
00069  ***********************************************************************/
00070 #define     kPmConnectorLibVersion  sysMakeROMVersion(1, 3, 2, sysROMStageRelease, 0)
00071 
00072 
00073 /***********************************************************************
00074  * PmConnectorLib result codes
00075  * (appErrorClass is reserved for 3rd party apps/libraries.
00076  * It is defined in SystemMgr.h)
00077  ***********************************************************************/
00078 /**
00079  * @name Error Codes
00080  */
00081 /*@{*/
00082 #define kPmConnectorLibErrorClass           (oemErrorClass + 0x100)
00083 /* Invalid parameter */
00084 #define kPmConnectorLibErrBadParam          (kPmConnectorLibErrorClass | 0x01)
00085 /* Memory error */
00086 #define kPmConnectorLibErrNoMemory          (kPmConnectorLibErrorClass | 0x02)
00087 /* Library is not open */
00088 #define kPmConnectorLibErrNotOpen           (kPmConnectorLibErrorClass | 0x03)
00089 /* Returned from PmConnectorLibClose() if the library is still open */
00090 #define kPmConnectorLibErrStillOpen         (kPmConnectorLibErrorClass | 0x04)
00091 /* Internal erro */
00092 #define kPmConnectorLibErrInternal          (kPmConnectorLibErrorClass | 0x05)
00093 /* Unsupported function */
00094 #define kPmConnectorLibErrNotSupported      (kPmConnectorLibErrorClass | 0x06)
00095 /* Bad version */
00096 #define kPmConnectorLibErrNotCompatible (kPmConnectorLibErrorClass | 0x07)
00097 /*@}*/
00098 
00099 /***********************************************************************
00100  * Constants - control commands
00101  ***********************************************************************/
00102 
00103 /**
00104  * @name Control commands for Connector
00105  */
00106 /*@{*/
00107 #define kPmConnectorLibCtrlPowerOn              0x01
00108 #define kPmConnectorLibCtrlPowerOff             0x02
00109 #define kPmConnectorLibCtrlGetDeviceClass       0x03
00110 /*@}*/
00111 
00112 /***********************************************************************
00113  * Notification constants 
00114  ***********************************************************************/
00115 
00116 /**
00117  * @name Notification Constants
00118  */
00119 /*@{*/
00120 #define kPmConnectorClassAudioWHeadset          0x05 // was 0x00 in versions <= 1.2.0
00121 #define kPmConnectorClassAudioNoHeadset         0x00 // was 0x01 in versions <= 1.2.0
00122 #define kPmConnectorClassCarkit                 0x01 // was 0x02 in versions <= 1.2.0
00123 #define kPmConnectorClassGenericSerial          0x03
00124 #define kPmConnectorClassSmartSerial            0x07
00125 #define kPmConnectorClassSerial                 0x10
00126 #define kPmConnectorClassUSB                    0xf0
00127 #define kPmConnectorClassUnknown                0x00ff
00128 #define kPmConnectorClassNoDevice               0x0fff
00129 #define kPmConnectorClassMask                   0x0fff
00130 /*@}*/
00131 
00132 
00133 /** @brief State of the connector */
00134 typedef enum {
00135     kPmConnectorDeviceAttach = 0x8000,  /**< is currently attached */
00136     kPmConnectorDeviceDetach = 0x4000   /**< is currently detached */
00137 } ePmConnectorDeviceState;
00138 
00139 typedef UInt16 PmConnectorStateType;
00140 
00141 /** @brief Container for the notification details */
00142 typedef struct {
00143     UInt32                  serialPortId;
00144     UInt32                  deviceClass;
00145     UInt32                  athenaDeviceCreatorCode;
00146     UInt32                  reserved1;
00147     UInt32                  reserved2;
00148 } PmConnectorNotifyDataType;
00149 
00150 /**
00151  * @brief Audio Output Routings
00152  */
00153 typedef enum tagAudioOutputSetting 
00154 {
00155     kAudioOutputSettingDefault = 0,  //device should do something reaasonable based on its current capabilities
00156     kAudioOutputSettingHeadphone,
00157     kAudioOutputSettingAthena,
00158     kAudioOutputSettingSpeaker
00159 } ePmConnectorAudioOutputSettingsType;
00160 
00161 /** Audio Output setting type */
00162 typedef UInt16 PmConnectorAudioOutputSettingType;
00163 
00164 typedef enum tagAudioInputSetting 
00165 {
00166     kAudioInputDefault = 0,  //device should do something reaasonable based on its current capabilities
00167     kAudioInputExternalMic,
00168     kAudioInputInternalMic
00169 } ePmConnectorAudioInputSettingsType;
00170 
00171 typedef UInt16 PmConnectorAudioInputSettingType;
00172 
00173 
00174 /** Library control type */
00175 typedef UInt16 PmConnectorLibControlType;
00176 
00177 #endif // __PMConnectorLIBCOMMON_H__

Top Palm Developer Network
© 2004-2008, Palm, Inc. All rights reserved.
Generated on Fri Jun 13 10:06:55 2008 for Palm API Guide