]> git.stg.codes - stg.git/blobdiff - include/stg/admin_conf.inc.h
Headers moved to subdir stg
[stg.git] / include / stg / admin_conf.inc.h
diff --git a/include/stg/admin_conf.inc.h b/include/stg/admin_conf.inc.h
new file mode 100644 (file)
index 0000000..44897a0
--- /dev/null
@@ -0,0 +1,35 @@
+ /*
+ $Revision: 1.1 $
+ $Date: 2010/09/10 01:45:24 $
+ $Author: faust $
+ */
+
+#ifndef ADMIN_CONF_INC_H
+#define ADMIN_CONF_INC_H
+
+inline
+uint16_t PRIV::ToInt() const
+{
+uint16_t p = (userStat   << 0)  |
+             (userConf   << 2)  |
+             (userCash   << 4)  |
+             (userPasswd << 6)  |
+             (userAddDel << 8)  |
+             (adminChg   << 10) |
+             (tariffChg  << 12);
+return p;
+}
+
+inline
+void PRIV::FromInt(uint16_t p)
+{
+userStat   = (p & 0x0003) >> 0x00; // 1+2
+userConf   = (p & 0x000C) >> 0x02; // 4+8
+userCash   = (p & 0x0030) >> 0x04; // 10+20
+userPasswd = (p & 0x00C0) >> 0x06; // 40+80
+userAddDel = (p & 0x0300) >> 0x08; // 100+200
+adminChg   = (p & 0x0C00) >> 0x0A; // 400+800
+tariffChg  = (p & 0x3000) >> 0x0C; // 1000+2000
+}
+
+#endif