reorganized the soundblaster code a bit, adding support for DSP < 4
[dos_auplay] / src / main.c
index c88aa3b..1e17beb 100644 (file)
@@ -12,12 +12,12 @@ static int play_file(const char *fname);
 static int cbfunc(void *buf, int size, void *cls);\r
 static void print_usage(const char *argv0);\r
 \r
-static int vol = 220;\r
+static int vol = 255;\r
 static int quit;\r
 \r
 int main(int argc, char **argv)\r
 {\r
-       int i;\r
+       int i, vol;\r
 \r
        if(audio_init() == -1) {\r
                return 1;\r
@@ -27,7 +27,14 @@ int main(int argc, char **argv)
 \r
        for(i=1; i<argc; i++) {\r
                if(argv[i][0] == '-') {\r
-                       if(strcmp(argv[i], "-h") == 0 || strcmp(argv[i], "-help") == 0) {\r
+                       if(strcmp(argv[i], "-v") == 0 || strcmp(argv[i], "-volume") == 0) {\r
+                               if(!argv[++i] || (vol = atoi(argv[i])) <= 0 || vol > 100) {\r
+                                       fprintf(stderr, "%s must be followed by a number 1-100\n", argv[-1]);\r
+                                       return 1;\r
+                               }\r
+                               audio_setvolume(AUDIO_DEFAULT, vol * 255 / 100);\r
+\r
+                       } else if(strcmp(argv[i], "-h") == 0 || strcmp(argv[i], "-help") == 0) {\r
                                print_usage(argv[0]);\r
                                return 0;\r
                        } else {\r
@@ -83,7 +90,7 @@ static int play_file(const char *fname)
                                paused = !paused;\r
                                if(paused) {\r
                                        audio_pause();\r
-                                       printf("pause\n");\r
+                                       printf("\npause\n");\r
                                } else {\r
                                        audio_resume();\r
                                        printf("resume\n");\r
@@ -94,14 +101,14 @@ static int play_file(const char *fname)
                                vol += 32;\r
                                if(vol > 255) vol = 255;\r
                                audio_setvolume(AUDIO_DEFAULT, vol);\r
-                               printf("volume: %d%%\n", 101 * vol / 256);\r
+                               printf("\nvolume: %d%%\n", 101 * vol / 256);\r
                                break;\r
 \r
                        case '-':\r
                                vol -= 32;\r
                                if(vol < 0) vol = 0;\r
                                audio_setvolume(AUDIO_DEFAULT, vol);\r
-                               printf("volume: %d%%\n", 101 * vol / 256);\r
+                               printf("\nvolume: %d%%\n", 101 * vol / 256);\r
                                break;\r
 \r
                        case 'm':\r
@@ -123,7 +130,8 @@ static int play_file(const char *fname)
                        prev = dbg_cur_offs;\r
                        _enable();\r
 \r
-                       printf("%3d%% - offs: %lu/%lu\n", 100 * prev / au->size, prev, au->size);\r
+                       printf("%3d%% - offs: %lu/%lu       \r", 100 * prev / au->size, prev, au->size);\r
+                       fflush(stdout);\r
                } else {\r
                        _enable();\r
                }\r
@@ -131,6 +139,7 @@ static int play_file(const char *fname)
        }\r
 \r
 end:\r
+       putchar('\n');\r
        au_close(au);\r
 #ifdef DBG_PRELOAD\r
        free(dbg_samples);\r
@@ -168,5 +177,6 @@ static void print_usage(const char *argv0)
 {\r
        printf("Usage: %s [options] <file1> <file2> ... <filen>\n", argv0);\r
        printf("options:\n");\r
+       printf(" -v,-volume <percent>: set audio volume (1-100)\n");\r
        printf(" -h,-help: print usage and exit\n");\r
 }\r