diff options
author | tilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b> | 2008-07-25 21:20:03 +0000 |
---|---|---|
committer | tilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b> | 2008-07-25 21:20:03 +0000 |
commit | 1b294dd7134fc715c0a251f00aaab1a2ddfd8575 (patch) | |
tree | 038b9bed08ac145034dbf25e6a9d28b74c00ea93 /main/devicestate.c | |
parent | 7ab3f69dea0ede393e2fb63398133736690da768 (diff) |
Deprecate *_device_state_* APIs in favor of *_devstate_* APIs
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@133860 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'main/devicestate.c')
-rw-r--r-- | main/devicestate.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/main/devicestate.c b/main/devicestate.c index c7fe08e39..1bf19f6b0 100644 --- a/main/devicestate.c +++ b/main/devicestate.c @@ -140,6 +140,24 @@ static const char *devstatestring[] = { /* 8 AST_DEVICE_ONHOLD */ "On Hold" /*!< On Hold */ }; +/*!\brief Mapping for channel states to device states */ +static const struct chan2dev { + enum ast_channel_state chan; + enum ast_device_state dev; +} chan2dev[] = { + { AST_STATE_DOWN, AST_DEVICE_NOT_INUSE }, + { AST_STATE_RESERVED, AST_DEVICE_INUSE }, + { AST_STATE_OFFHOOK, AST_DEVICE_INUSE }, + { AST_STATE_DIALING, AST_DEVICE_INUSE }, + { AST_STATE_RING, AST_DEVICE_INUSE }, + { AST_STATE_RINGING, AST_DEVICE_RINGING }, + { AST_STATE_UP, AST_DEVICE_INUSE }, + { AST_STATE_BUSY, AST_DEVICE_BUSY }, + { AST_STATE_DIALING_OFFHOOK, AST_DEVICE_INUSE }, + { AST_STATE_PRERING, AST_DEVICE_RINGING }, + { -100, -100 }, +}; + /*! \brief A device state provider (not a channel) */ struct devstate_prov { char label[40]; @@ -202,6 +220,18 @@ const char *devstate2str(enum ast_device_state devstate) return devstatestring[devstate]; } +enum ast_device_state ast_state_chan2dev(enum ast_channel_state chanstate) +{ + int i; + chanstate &= 0xFFFF; + for (i = 0; chan2dev[i].chan != -100; i++) { + if (chan2dev[i].chan == chanstate) { + return chan2dev[i].dev; + } + } + return AST_DEVICE_UNKNOWN; +} + const char *ast_devstate_str(enum ast_device_state state) { const char *res = "UNKNOWN"; |