ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/cebix/SIDPlayer/src/main_sdl.cpp
Revision: 1.1
Committed: 2000-09-19T15:34:11Z (23 years, 6 months ago) by cebix
Branch: MAIN
Log Message:
can now compile as a portable command-line SDL-based application

File Contents

# Content
1 /*
2 * main_sdl.cpp - SIDPlayer SDL main program
3 *
4 * SIDPlayer (C) Copyright 1996-2000 Christian Bauer
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 */
20
21 #include "sys.h"
22
23 #include <SDL.h>
24 #include <stdio.h>
25 #include <stdlib.h>
26
27 #include "main.h"
28
29
30 /*
31 * Main program
32 */
33
34 static void usage(const char *prg_name)
35 {
36 printf("\nUsage: %s [file [song]]\n", prg_name);
37 exit(0);
38 }
39
40 static void quit(void)
41 {
42 ExitAll();
43 SDL_Quit();
44 }
45
46 int main(int argc, char **argv)
47 {
48 // Print banner
49 printf(
50 PACKAGE " Version " VERSION "\n\n"
51 "Copyright (C) 1996-2000 Christian Bauer\n"
52 "E-mail: Christian.Bauer@uni-mainz.de\n"
53 "http://www.uni-mainz.de/~bauec002/\n\n"
54 "This is free software with ABSOLUTELY NO WARRANTY.\n"
55 "You are welcome to redistribute it under certain conditions.\n"
56 "For details, see the file COPYING.\n\n"
57 );
58
59 // Parse arguments
60 if (argc < 2)
61 usage(argv[0]);
62 char *file_name = argv[1];
63 int song = 0;
64 if (argc == 3)
65 song = atoi(argv[2]);
66
67 // Initialize everything
68 if (SDL_Init(SDL_INIT_AUDIO) < 0) {
69 fprintf(stderr, "Couldn't initialize SDL (%s)\n", SDL_GetError());
70 exit(1);
71 }
72 atexit(quit);
73 InitAll();
74
75 // Load given PSID file
76 if (!LoadPSIDFile(argv[1])) {
77 fprintf(stderr, "Couldn't load '%s' (not a PSID file?)\n", argv[1]);
78 exit(1);
79 }
80
81 // Select song
82 if (song > 0) {
83 if (song > number_of_songs)
84 song = number_of_songs;
85 SelectSong(song - 1);
86 }
87
88 // Print file information
89 printf("Module Name: %s\n", module_name);
90 printf("Author : %s\n", author_name);
91 printf("Copyright : %s\n\n", copyright_info);
92 printf("Playing song %d/%d\n", current_song + 1, number_of_songs);
93
94 // Start replay and enter main loop
95 SDL_PauseAudio(false);
96 while (true) {
97 SDL_Event e;
98 if (SDL_WaitEvent(&e)) {
99 if (e.type == SDL_QUIT)
100 break;
101 }
102 }
103
104 return 0;
105 }