Index: uspace/app/wavplay/main.c
===================================================================
--- uspace/app/wavplay/main.c	(revision 1ba95ba22329ef38282fb014cef569f9c15483c2)
+++ uspace/app/wavplay/main.c	(revision 86fe9d11bb24da4ce5f5aee7b0de493478065508)
@@ -67,5 +67,4 @@
 }
 
-
 static void data_callback(void* arg, void *buffer, ssize_t size)
 {
@@ -124,7 +123,17 @@
 	{"device", required_argument, 0, 'd'},
 	{"record", no_argument, 0, 'r'},
+	{"help", no_argument, 0, 'h'},
 	{0, 0, 0, 0}
 };
 
+static void print_help(const char* name)
+{
+	printf("Usage: %s [options] file\n", name);
+	printf("supported options:\n");
+	printf("\t -h, --help\t Print this help.\n");
+	printf("\t -r, --record\t Start recording instead of playback.\n");
+	printf("\t -d, --device\t Use specified device instead of sound "
+	    "service. Use location path or special device `default'\n");
+}
 
 int main(int argc, char *argv[])
@@ -136,5 +145,5 @@
 	int ret = 0;
 	while (ret != -1) {
-		ret = getopt_long(argc, argv, "d:r", opts, &idx);
+		ret = getopt_long(argc, argv, "d:rh", opts, &idx);
 		switch (ret) {
 		case 'd':
@@ -145,4 +154,7 @@
 			record = true;
 			break;
+		case 'h':
+			print_help(*argv);
+			return 0;
 		};
 	}
@@ -150,4 +162,5 @@
 	if (optind == argc) {
 		printf("Not enough arguments.\n");
+		print_help(*argv);
 		return 1;
 	}
