summaryrefslogtreecommitdiffstats
path: root/src/scannersession.vala
diff options
context:
space:
mode:
authorSebastian Reichel <sre@ring0.de>2012-10-06 21:09:54 +0200
committerSebastian Reichel <sre@ring0.de>2012-10-06 21:09:54 +0200
commitd70dcb4f20d1c52add759ed4ec5ccbf7131de069 (patch)
tree64db0591701c57fa49e39cdb7a71cb22e2b46551 /src/scannersession.vala
parent4bc20854220c7fbfb655a6ed476d12cdafce2f2d (diff)
downloadserial-barcode-scanner-d70dcb4f20d1c52add759ed4ec5ccbf7131de069.tar.bz2
Add full audio support (Closes: GH-13)
Diffstat (limited to 'src/scannersession.vala')
-rw-r--r--src/scannersession.vala36
1 files changed, 24 insertions, 12 deletions
diff --git a/src/scannersession.vala b/src/scannersession.vala
index e286387..7f19b77 100644
--- a/src/scannersession.vala
+++ b/src/scannersession.vala
@@ -34,6 +34,11 @@ public class ScannerSession {
private set;
default = false;
}
+ public string theme {
+ get;
+ private set;
+ default = "beep";
+ }
public void logout() {
logged_in = false;
@@ -48,6 +53,7 @@ public class ScannerSession {
return false;
}
this.logged_in = true;
+ this.theme = audio.get_random_user_theme();
return true;
}
@@ -62,7 +68,7 @@ public class ScannerSession {
/* check if scannerdata has valid format */
if(scannerdata != "USER %d".printf(id)) {
- audio.play("system/error.ogg");
+ audio.play_system("error.ogg");
write_to_log("Error: Invalid User ID: %s", scannerdata);
return false;
}
@@ -73,11 +79,11 @@ public class ScannerSession {
}
if(login(id)) {
- /* TODO: play audio */
+ audio.play_user(theme, "login");
write_to_log("Login: %s (%d)", name, user);
return true;
} else {
- audio.play("system/error.ogg");
+ audio.play_system("error.ogg");
write_to_log("Error: Login failed (User ID = %d)", id);
return false;
}
@@ -88,33 +94,33 @@ public class ScannerSession {
}
if(login(0)) {
- /* TODO: play audio */
+ audio.play_user(theme, "login");
write_to_log("Login: %s (%d)", name, user);
return true;
} else {
- audio.play("system/error.ogg");
+ audio.play_system("error.ogg");
write_to_log("Error: Login failed (User ID = 0)");
return false;
}
} else if(scannerdata == "UNDO") {
if(!logged_in) {
- audio.play("system/error.ogg");
+ audio.play_system("error.ogg");
write_to_log("Error: Can't undo if not logged in!");
return false;
} else {
if(db.undo(user)) {
- /* TODO: play audio */
+ audio.play_user(theme, "purchase");
write_to_log("Undo last purchase!");
return true;
} else {
- /* TODO: play audio */
+ audio.play_user(theme, "error");
write_to_log("Error: Couldn't undo last purchase!");
return false;
}
}
} else if(scannerdata == "LOGOUT") {
if(logged_in) {
- /* TODO: play audio */
+ audio.play_user(theme, "logout");
write_to_log("Logout!");
logout();
return true;
@@ -126,19 +132,25 @@ public class ScannerSession {
/* check if scannerdata has valid format */
if(scannerdata != "%llu".printf(id)) {
- /* TODO: play audio */
+ audio.play_user(theme, "error");
write_to_log("Error: invalid product: %s", scannerdata);
return false;
}
+ if(!logged_in) {
+ audio.play_system("error.ogg");
+ write_to_log("Error: Login Required!");
+ return false;
+ }
+
if(db.buy(user, id)) {
- /* TODO: play audio */
+ audio.play_user(theme, "purchase");
var name = db.get_product_name(id);
var price = db.get_product_price(user, id);
write_to_log(@"article bought: $name ($price €)");
return true;
} else {
- /* TODO: play audio */
+ audio.play_user(theme, "error");
write_to_log("Error: purchase failed!");
return false;
}