summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohannes Rudolph <johannes.rudolph@gmx.com>2018-01-13 14:28:02 +0100
committerSebastian Reichel <sre@ring0.de>2018-06-28 01:52:53 +0200
commitc2bc2327238fc6833be861379e214661bfb391ae (patch)
treeb3bf838a9d93e726d9cbe3d2b702b8172138c29e
parentfe7729489370800a1a24ad4a0b6adf7d95979daf (diff)
downloadserial-barcode-scanner-c2bc2327238fc6833be861379e214661bfb391ae.tar.bz2
scanner-session: add getCodeType()
-rw-r--r--src/scanner-session/scannersession-interface.vala9
-rw-r--r--src/scanner-session/scannersession.vala22
2 files changed, 31 insertions, 0 deletions
diff --git a/src/scanner-session/scannersession-interface.vala b/src/scanner-session/scannersession-interface.vala
index 89498df..9f989e7 100644
--- a/src/scanner-session/scannersession-interface.vala
+++ b/src/scanner-session/scannersession-interface.vala
@@ -24,3 +24,12 @@ public enum MessageType {
WARNING,
ERROR
}
+
+public enum ScannerSessionCodeType {
+ USER,
+ GUEST,
+ UNDO,
+ LOGOUT,
+ EAN,
+ UNKNOWN
+}
diff --git a/src/scanner-session/scannersession.vala b/src/scanner-session/scannersession.vala
index eeb02e3..23db939 100644
--- a/src/scanner-session/scannersession.vala
+++ b/src/scanner-session/scannersession.vala
@@ -78,6 +78,28 @@ public class ScannerSessionImplementation {
return true;
}
+ private ScannerSessionCodeType getCodeType(string scannerdata){
+ if(scannerdata.has_prefix("USER ")){
+ return ScannerSessionCodeType.USER;
+ } else if(scannerdata == "GUEST") {
+ return ScannerSessionCodeType.GUEST;
+ } else if(scannerdata == "UNDO") {
+ return ScannerSessionCodeType.UNDO;
+ } else if(scannerdata == "LOGOUT") {
+ return ScannerSessionCodeType.LOGOUT;
+ } else {
+ //Handle EAN Code
+ uint64 id = 0;
+ scannerdata.scanf("%llu", out id);
+
+ /* check if scannerdata has valid format */
+ if(scannerdata != "%llu".printf(id) && scannerdata != "%08llu".printf(id) && scannerdata != "%013llu".printf(id)) {
+ return ScannerSessionCodeType.UNKNOWN;
+ }
+ return ScannerSessionCodeType.EAN;
+ }
+ }
+
private void play_audio(AudioType audioType){
switch (audioType) {
case AudioType.ERROR: