]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
moving device state functions from pbx.h to devicestate.h to sync with other branches
authorDavid Vossel <dvossel@digium.com>
Thu, 2 Jul 2009 18:15:39 +0000 (18:15 +0000)
committerDavid Vossel <dvossel@digium.com>
Thu, 2 Jul 2009 18:15:39 +0000 (18:15 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@204755 65c4cc65-6c06-0410-ace0-fbb531ad65f3

include/asterisk/devicestate.h
include/asterisk/pbx.h
main/devicestate.c
main/pbx.c

index 960d622e74f63cab0f1293a87af6c364db8a78ed..e9f1c36f38152d228f56e1ea9926a4d712ed55eb 100644 (file)
@@ -118,6 +118,64 @@ int ast_devstate_prov_add(const char *label, ast_devstate_prov_cb_type callback)
  */ 
 void ast_devstate_prov_del(const char *label);
 
+/*!
+ * \brief An object to hold state when calculating aggregate device state
+ */
+struct ast_devstate_aggregate;
+
+/*!
+ * \brief Initialize aggregate device state
+ *
+ * \param[in] agg the state object
+ *
+ * \return nothing
+ */
+void ast_devstate_aggregate_init(struct ast_devstate_aggregate *agg);
+
+/*!
+ * \brief Add a device state to the aggregate device state
+ *
+ * \param[in] agg the state object
+ * \param[in] state the state to add
+ *
+ * \return nothing
+ */
+void ast_devstate_aggregate_add(struct ast_devstate_aggregate *agg, enum ast_device_state state);
+
+/*!
+ * \brief Get the aggregate device state result
+ *
+ * \param[in] agg the state object
+ *
+ * \return the aggregate device state after adding some number of device states.
+ */
+enum ast_device_state ast_devstate_aggregate_result(struct ast_devstate_aggregate *agg);
+
+/*!
+ * \brief Map devstate to an extension state.
+ *
+ * \param[in] device state
+ *
+ * \return the extension state mapping.
+ */
+enum ast_extension_states ast_devstate_to_extenstate(enum ast_device_state devstate);
+
+/*!
+ * \brief You shouldn't care about the contents of this struct
+ *
+ * This struct is only here so that it can be easily declared on the stack.
+ */
+struct ast_devstate_aggregate {
+       unsigned int all_unavail:1;
+       unsigned int all_busy:1;
+       unsigned int all_free:1;
+       unsigned int all_unknown:1;
+       unsigned int on_hold:1;
+       unsigned int busy:1;
+       unsigned int in_use:1;
+       unsigned int ring:1;
+};
+
 int ast_device_state_engine_init(void);
 
 #if defined(__cplusplus) || defined(c_plusplus)
index 11aa57be4a6cddf7aa897d16f856ae7a5cb1d58c..0b5adf79cd4fc22c20dbc186abee84f9b142e359 100644 (file)
@@ -306,64 +306,6 @@ int ast_register_application(const char *app, int (*execute)(struct ast_channel
  */
 int ast_unregister_application(const char *app);
 
-/*!
- * \brief An object to hold state when calculating aggregate device state
- */
-struct ast_devstate_aggregate;
-
-/*!
- * \brief Initialize aggregate device state
- *
- * \param[in] agg the state object
- *
- * \return nothing
- */
-void ast_devstate_aggregate_init(struct ast_devstate_aggregate *agg);
-
-/*!
- * \brief Add a device state to the aggregate device state
- *
- * \param[in] agg the state object
- * \param[in] state the state to add
- *
- * \return nothing
- */
-void ast_devstate_aggregate_add(struct ast_devstate_aggregate *agg, enum ast_device_state state);
-
-/*!
- * \brief Get the aggregate device state result
- *
- * \param[in] agg the state object
- *
- * \return the aggregate device state after adding some number of device states.
- */
-enum ast_device_state ast_devstate_aggregate_result(struct ast_devstate_aggregate *agg);
-
-/*!
- * \brief Map devstate to an extension state.
- *
- * \param[in] device state
- *
- * \return the extension state mapping.
- */
-enum ast_extension_states ast_devstate_to_extenstate(enum ast_device_state devstate);
-
-/*!
- * \brief You shouldn't care about the contents of this struct
- *
- * This struct is only here so that it can be easily declared on the stack.
- */
-struct ast_devstate_aggregate {
-       unsigned int all_unavail:1;
-       unsigned int all_busy:1;
-       unsigned int all_free:1;
-       unsigned int all_unknown:1;
-       unsigned int on_hold:1;
-       unsigned int busy:1;
-       unsigned int in_use:1;
-       unsigned int ring:1;
-};
-
 /*! 
  * \brief Uses hint and devicestate callback to get the state of an extension
  *
index 3cda197984e5e248da7209a6c8e8d8c09c32439a..70b9793c5ab088f3df7634cb80333f6edea42117 100644 (file)
@@ -367,3 +367,116 @@ int ast_device_state_engine_init(void)
 
        return 0;
 }
+
+void ast_devstate_aggregate_init(struct ast_devstate_aggregate *agg)
+{
+       memset(agg, 0, sizeof(*agg));
+       agg->all_unknown = 1;
+       agg->all_unavail = 1;
+       agg->all_busy = 1;
+       agg->all_free = 1;
+}
+
+void ast_devstate_aggregate_add(struct ast_devstate_aggregate *agg, enum ast_device_state state)
+{
+       switch (state) {
+       case AST_DEVICE_NOT_INUSE:
+               agg->all_unknown = 0;
+               agg->all_unavail = 0;
+               agg->all_busy = 0;
+               break;
+       case AST_DEVICE_INUSE:
+               agg->in_use = 1;
+               agg->all_unavail = 0;
+               agg->all_free = 0;
+               agg->all_unknown = 0;
+               break;
+       case AST_DEVICE_RINGING:
+               agg->ring = 1;
+               agg->all_unavail = 0;
+               agg->all_free = 0;
+               agg->all_unknown = 0;
+               break;
+       case AST_DEVICE_RINGINUSE:
+               agg->in_use = 1;
+               agg->ring = 1;
+               agg->all_unavail = 0;
+               agg->all_free = 0;
+               agg->all_unknown = 0;
+               break;
+       case AST_DEVICE_ONHOLD:
+               agg->all_unknown = 0;
+               agg->all_unavail = 0;
+               agg->all_free = 0;
+               agg->on_hold = 1;
+               break;
+       case AST_DEVICE_BUSY:
+               agg->all_unknown = 0;
+               agg->all_unavail = 0;
+               agg->all_free = 0;
+               agg->busy = 1;
+               agg->in_use = 1;
+               break;
+       case AST_DEVICE_UNAVAILABLE:
+               agg->all_unknown = 0;
+       case AST_DEVICE_INVALID:
+               agg->all_busy = 0;
+               agg->all_free = 0;
+               break;
+       case AST_DEVICE_UNKNOWN:
+               agg->all_busy = 0;
+               agg->all_free = 0;
+               break;
+       case AST_DEVICE_TOTAL: /* not a device state, included for completeness. */
+               break;
+       }
+}
+
+enum ast_extension_states ast_devstate_to_extenstate(enum ast_device_state devstate)
+{
+       switch (devstate) {
+       case AST_DEVICE_ONHOLD:
+               return AST_EXTENSION_ONHOLD;
+       case AST_DEVICE_BUSY:
+               return AST_EXTENSION_BUSY;
+       case AST_DEVICE_UNAVAILABLE:
+       case AST_DEVICE_UNKNOWN:
+       case AST_DEVICE_INVALID:
+               return AST_EXTENSION_UNAVAILABLE;
+       case AST_DEVICE_RINGINUSE:
+               return (AST_EXTENSION_INUSE | AST_EXTENSION_RINGING);
+       case AST_DEVICE_RINGING:
+               return AST_EXTENSION_RINGING;
+       case AST_DEVICE_INUSE:
+               return AST_EXTENSION_INUSE;
+       case AST_DEVICE_NOT_INUSE:
+               return AST_EXTENSION_NOT_INUSE;
+       case AST_DEVICE_TOTAL: /* not a device state, included for completeness */
+               break;
+       }
+
+       return AST_EXTENSION_NOT_INUSE;
+}
+enum ast_device_state ast_devstate_aggregate_result(struct ast_devstate_aggregate *agg)
+{
+       if (agg->all_free)
+               return AST_DEVICE_NOT_INUSE;
+       if ((agg->in_use || agg->on_hold) && agg->ring)
+               return AST_DEVICE_RINGINUSE;
+       if (agg->ring)
+               return AST_DEVICE_RINGING;
+       if (agg->busy)
+               return AST_DEVICE_BUSY;
+       if (agg->in_use)
+               return AST_DEVICE_INUSE;
+       if (agg->on_hold)
+               return AST_DEVICE_ONHOLD;
+       if (agg->all_busy)
+               return AST_DEVICE_BUSY;
+       if (agg->all_unknown)
+               return AST_DEVICE_UNKNOWN;
+       if (agg->all_unavail)
+               return AST_DEVICE_UNAVAILABLE;
+
+       return AST_DEVICE_NOT_INUSE;
+}
index 026460da195ddeba922cd8415723ba5df4df767c..8fe5887fe9e8dc6fcce682d85bf351ca0bf860e2 100644 (file)
@@ -1914,119 +1914,6 @@ static struct ast_exten *ast_hint_extension(struct ast_channel *c, const char *c
        return e;
 }
 
-void ast_devstate_aggregate_init(struct ast_devstate_aggregate *agg)
-{
-       memset(agg, 0, sizeof(*agg));
-       agg->all_unknown = 1;
-       agg->all_unavail = 1;
-       agg->all_busy = 1;
-       agg->all_free = 1;
-}
-
-void ast_devstate_aggregate_add(struct ast_devstate_aggregate *agg, enum ast_device_state state)
-{
-       switch (state) {
-       case AST_DEVICE_NOT_INUSE:
-               agg->all_unknown = 0;
-               agg->all_unavail = 0;
-               agg->all_busy = 0;
-               break;
-       case AST_DEVICE_INUSE:
-               agg->in_use = 1;
-               agg->all_unavail = 0;
-               agg->all_free = 0;
-               agg->all_unknown = 0;
-               break;
-       case AST_DEVICE_RINGING:
-               agg->ring = 1;
-               agg->all_unavail = 0;
-               agg->all_free = 0;
-               agg->all_unknown = 0;
-               break;
-       case AST_DEVICE_RINGINUSE:
-               agg->in_use = 1;
-               agg->ring = 1;
-               agg->all_unavail = 0;
-               agg->all_free = 0;
-               agg->all_unknown = 0;
-               break;
-       case AST_DEVICE_ONHOLD:
-               agg->all_unknown = 0;
-               agg->all_unavail = 0;
-               agg->all_free = 0;
-               agg->on_hold = 1;
-               break;
-       case AST_DEVICE_BUSY:
-               agg->all_unknown = 0;
-               agg->all_unavail = 0;
-               agg->all_free = 0;
-               agg->busy = 1;
-               agg->in_use = 1;
-               break;
-       case AST_DEVICE_UNAVAILABLE:
-               agg->all_unknown = 0;
-       case AST_DEVICE_INVALID:
-               agg->all_busy = 0;
-               agg->all_free = 0;
-               break;
-       case AST_DEVICE_UNKNOWN:
-               agg->all_busy = 0;
-               agg->all_free = 0;
-               break;
-       case AST_DEVICE_TOTAL: /* not a device state, included for completeness. */
-               break;
-       }
-}
-
-enum ast_extension_states ast_devstate_to_extenstate(enum ast_device_state devstate)
-{
-       switch (devstate) {
-       case AST_DEVICE_ONHOLD:
-               return AST_EXTENSION_ONHOLD;
-       case AST_DEVICE_BUSY:
-               return AST_EXTENSION_BUSY;
-       case AST_DEVICE_UNAVAILABLE:
-       case AST_DEVICE_UNKNOWN:
-       case AST_DEVICE_INVALID:
-               return AST_EXTENSION_UNAVAILABLE;
-       case AST_DEVICE_RINGINUSE:
-               return (AST_EXTENSION_INUSE | AST_EXTENSION_RINGING);
-       case AST_DEVICE_RINGING:
-               return AST_EXTENSION_RINGING;
-       case AST_DEVICE_INUSE:
-               return AST_EXTENSION_INUSE;
-       case AST_DEVICE_NOT_INUSE:
-               return AST_EXTENSION_NOT_INUSE;
-       case AST_DEVICE_TOTAL: /* not a device state, included for completeness */
-               break;
-       }
-
-       return AST_EXTENSION_NOT_INUSE;
-}
-enum ast_device_state ast_devstate_aggregate_result(struct ast_devstate_aggregate *agg)
-{
-       if (agg->all_free)
-               return AST_DEVICE_NOT_INUSE;
-       if ((agg->in_use || agg->on_hold) && agg->ring)
-               return AST_DEVICE_RINGINUSE;
-       if (agg->ring)
-               return AST_DEVICE_RINGING;
-       if (agg->busy)
-               return AST_DEVICE_BUSY;
-       if (agg->in_use)
-               return AST_DEVICE_INUSE;
-       if (agg->on_hold)
-               return AST_DEVICE_ONHOLD;
-       if (agg->all_busy)
-               return AST_DEVICE_BUSY;
-       if (agg->all_unknown)
-               return AST_DEVICE_UNKNOWN;
-       if (agg->all_unavail)
-               return AST_DEVICE_UNAVAILABLE;
-
-       return AST_DEVICE_NOT_INUSE;
-}
-
 /*! \brief  ast_extensions_state2: Check state of extension by using hints */
 static int ast_extension_state2(struct ast_exten *e)
 {