Index: /orxonox/branches/sound/hud/Makefile
===================================================================
--- /orxonox/branches/sound/hud/Makefile	(revision 3020)
+++ /orxonox/branches/sound/hud/Makefile	(revision 3020)
@@ -0,0 +1,12 @@
+CC = gcc -Wall -ansi
+SOURCE = hud.cc
+FLAGS = -lGL -lGLU `sdl-config --cflags --libs`
+BINARY = hud
+
+all:
+	$(CC) $(SOURCE) -o $(BINARY) $(FLAGS)
+
+clean:
+	@echo Cleaning up...
+	@rm $(BINARY)
+	@echo Done.
Index: /orxonox/branches/sound/hud/hud.cc
===================================================================
--- /orxonox/branches/sound/hud/hud.cc	(revision 3019)
+++ /orxonox/branches/sound/hud/hud.cc	(revision 3020)
@@ -1,4 +1,2 @@
-
-
 /* 
    orxonox - the future of 3D-vertical-scrollers
@@ -16,5 +14,4 @@
 */
 
-
 #include "hud.h"
 
@@ -27,2 +24,276 @@
 }
 
+bool Hud::LoadTGA(TextureImage *texture, char *filename) {    
+  GLubyte TGAheader[12]={0,0,2,0,0,0,0,0,0,0,0,0};//Uncompressed TGA Header
+  GLubyte TGAcompare[12];
+  GLubyte header[6];//First 6 bytes of header
+  GLuint bytesPerPixel;
+  GLuint imageSize;
+  GLuint temp;
+  GLuint type=GL_RGBA;//GL Mode is RBGA (32 BPP)
+  FILE *file = fopen(filename, "rb");
+  if( file==NULL || fread(TGAcompare,1,sizeof(TGAcompare),file)!=sizeof(TGAcompare) || memcmp(TGAheader,TGAcompare,sizeof(TGAheader))!=0 || fread(header,1,sizeof(header),file)!=sizeof(header)) {
+      if (file == NULL)	
+	return false;
+      else {
+	fclose(file);
+	return false;
+      }
+    }
+  texture->width = header[1] * 256 + header[0];//width (highbyte*256+lowbyte)
+  texture->height = header[3] * 256 + header[2];//height (highbyte*256+lowbyte)
+  if(texture->width <= 0 || texture->height <=0 || (header[4]!=24 && header[4]!=32)) {
+    fclose(file);
+    return false;
+  }
+  texture->bpp = header[4];//TGA's bits per pixel
+  bytesPerPixel = texture->bpp/8;
+  imageSize = texture->width*texture->height*bytesPerPixel;//memory required
+  texture->imageData=(GLubyte *)malloc(imageSize);//Reserve Memory     
+  if(texture->imageData==NULL || fread(texture->imageData, 1, imageSize, file)!=imageSize) {
+      if(texture->imageData!=NULL)
+	free(texture->imageData);
+      fclose(file);
+      return false;
+    }
+  for(GLuint i=0; i<int(imageSize); i+=bytesPerPixel) {	
+      temp=texture->imageData[i];//Swaps the 1st and 3rd byte (red & blue)
+      texture->imageData[i] = texture->imageData[i + 2];
+      texture->imageData[i + 2] = temp;
+    }
+  fclose (file);
+  glGenTextures(1, &texture[0].texID);	// Generate OpenGL texture IDs
+  glBindTexture(GL_TEXTURE_2D, texture[0].texID);
+  glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+  glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+  if (texture[0].bpp==24) {
+      type=GL_RGB;
+    }
+  glTexImage2D(GL_TEXTURE_2D, 0, type, texture[0].width, texture[0].height, 0, type, GL_UNSIGNED_BYTE, texture[0].imageData);
+  return true;
+}
+
+GLvoid Hud::BuildFont(GLvoid) {
+  base=glGenLists(256);
+  glBindTexture(GL_TEXTURE_2D, textures[0].texID);
+  for (int loop1=0; loop1<256; loop1++) {
+    float cx=float(loop1%16)/16.0f;//X of current character
+    float cy=float(loop1/16)/16.0f;//Y of current character
+    glNewList(base+loop1,GL_COMPILE);	
+    glBegin(GL_QUADS);//Use a quad for each character
+    glTexCoord2f(cx,1.0f-cy-0.0625f);
+    glVertex2d(0,16);
+    glTexCoord2f(cx+0.0625f,1.0f-cy-0.0625f);
+    glVertex2i(16,16);
+    glTexCoord2f(cx+0.0625f,1.0f-cy-0.001f);
+    glVertex2i(16,0);
+    glTexCoord2f(cx,1.0f-cy-0.001f);
+    glVertex2i(0,0);
+    glEnd();
+    glTranslated(14,0,0);//Move to the right of the character
+    glEndList();
+  }									       
+}
+
+GLvoid Hud::KillFont(GLvoid)	{
+  glDeleteLists(base,256);
+}
+
+GLvoid Hud::glPrint(GLint x, GLint y, int set, const char *fmt, ...) {
+  char text[1024];
+  va_list ap;	
+  if (fmt == NULL)
+    return;
+  va_start(ap, fmt);//parses string for variables, converts to numbers
+  vsprintf(text, fmt, ap);
+  va_end(ap);
+  if (set>1) {
+    set=1;
+  }
+  glEnable(GL_TEXTURE_2D);//Enable texture mapping
+  glLoadIdentity();						
+  glTranslated(x,y,0);
+  glListBase(base-32+(128*set));
+  glScalef(1.0f,2.0f,1.0f);//Enlarge by factor 2
+  glCallLists(strlen(text),GL_UNSIGNED_BYTE, text);	
+  glDisable(GL_TEXTURE_2D);					
+}
+
+void Hud::Resize(int width, int height) {
+  swidth=width;			// Set Scissor Width To Window Width
+  sheight=height;		// Set Scissor Height To Window Height
+  if (height==0) {
+    height=1;	
+  }
+  glViewport(0,0,width,height);
+  glMatrixMode(GL_PROJECTION);
+  glLoadIdentity();						
+  glOrtho(0.0f,640,480,0.0f,-1.0f,1.0f);
+  glMatrixMode(GL_MODELVIEW);					
+  glLoadIdentity();
+}
+
+int Hud::InitGL() {
+  if (!LoadTGA(&textures[0],"Data/Font.tga")) {//Load font texture
+    return false;				
+  }
+  BuildFont();
+  glShadeModel(GL_SMOOTH);//enable smooth shading
+  glClearColor(0.0f, 0.0f, 0.0f, 0.5f);		
+  glClearDepth(1.0f);
+  glBindTexture(GL_TEXTURE_2D, textures[0].texID);
+  return true;							
+}
+
+void Hud::handleKeyPress(SDL_keysym *keysym) {
+  switch(keysym->sym) {
+  case SDLK_ESCAPE:
+    SDL_Quit();
+    break;
+  case SDLK_UP:
+    scroller = -1;
+    break;
+  case SDLK_DOWN:
+    scroller = 1;
+    break; 
+  default:
+    break;
+  } 
+  return;
+}
+
+void Hud::DrawGLScene() {
+  char	*token;
+  int cnt=0;
+  glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);	// Clear Screen And Depth Buffer
+    glColor3f(1.0f,0.5f,0.5f);//Set color to bright red
+  glPrint(50,16,1,"Renderer");
+  glPrint(80,48,1,"Hersteller");
+  glPrint(66,80,1,"Version");
+  glColor3f(1.0f,0.7f,0.4f);//Set color to orange
+  glPrint(200,16,1,(char *)glGetString(GL_RENDERER));		
+  glPrint(200,48,1,(char *)glGetString(GL_VENDOR));
+  glPrint(200,80,1,(char *)glGetString(GL_VERSION));
+    glColor3f(0.5f,0.5f,1.0f);//Set color to bright blue
+  glPrint(192,432,1,"orxonox HUD");
+  glLoadIdentity();    
+  glColor3f(1.0f,1.0f,1.0f);//Set the color to white
+  glBegin(GL_LINE_STRIP);
+  glVertex2d(639,417);
+  glVertex2d(  0,417);
+  glVertex2d(  0,480);
+  glVertex2d(639,480);
+  glVertex2d(639,128);
+  glEnd();
+  glBegin(GL_LINE_STRIP);
+  glVertex2d(  0,128);
+  glVertex2d(639,128);							       
+  glVertex2d(639,  1);
+  glVertex2d(  0,  1);
+  glVertex2d(  0,417);
+  glEnd();
+  glScissor(1	,int(0.135416f*sheight),swidth-2,int(0.597916f*sheight));//Scissor region
+  glEnable(GL_SCISSOR_TEST);
+  char* text=(char *)malloc(strlen((char *)glGetString(GL_EXTENSIONS))+1);
+  strcpy (text,(char *)glGetString(GL_EXTENSIONS));//Store extension list
+  token=strtok(text," ");
+  while(token!=NULL) {
+    cnt++;
+    if (cnt>maxtokens) {
+      maxtokens=cnt;
+    }
+    glColor3f(0.5f,1.0f,0.5f);//Set color to bright green
+    glPrint(0,96+(cnt*32)-scroll,0,"%i",cnt);
+    glColor3f(1.0f,1.0f,0.5f);	// Set Color To Yellow
+    glPrint(50,96+(cnt*32)-scroll,0,token);
+    token=strtok(NULL," ");
+  }
+  glDisable(GL_SCISSOR_TEST);
+  free(text);  
+  SDL_GL_SwapBuffers();
+  return;							
+}
+
+int Hud::main(int argc, char **argv) {
+  int videoFlags;
+  int done = false;
+  SDL_Event event;
+  const SDL_VideoInfo *videoInfo;
+  int isActive = true;
+  if(SDL_Init(SDL_INIT_VIDEO) < 0) {
+    fprintf(stderr, "Video initialization failed: %s\n", SDL_GetError());
+    SDL_Quit();
+    exit(0);
+  }
+  videoInfo = SDL_GetVideoInfo();
+  if(!videoInfo) {
+    fprintf(stderr, "Video query failed: %s\n", SDL_GetError());
+    SDL_Quit();
+    exit(0);
+  }
+  videoFlags  = SDL_OPENGL;          // Enable OpenGL in SDL
+  videoFlags |= SDL_GL_DOUBLEBUFFER; // Enable double buffering
+  videoFlags |= SDL_HWPALETTE;       // Store the palette in hardware
+  videoFlags |= SDL_RESIZABLE;       // Enable window resizing
+  if(videoInfo->hw_available)
+    videoFlags |= SDL_HWSURFACE;
+  else
+    videoFlags |= SDL_SWSURFACE;
+  if (videoInfo->blit_hw)
+    videoFlags |= SDL_HWACCEL;
+  SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
+  surface = SDL_SetVideoMode(SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_BPP, videoFlags);
+  
+  if (!surface) {
+      fprintf(stderr,  "Video mode set failed: %s\n", SDL_GetError());
+      SDL_Quit();
+      exit(1);
+    }
+  InitGL();
+  Resize(SCREEN_WIDTH, SCREEN_HEIGHT);
+  DrawGLScene();
+  while (!done) {
+      SDL_Delay(10);
+      while(SDL_PollEvent(&event)) {
+	switch(event.type) {
+	case SDL_ACTIVEEVENT:
+	  if(event.active.gain == 0)
+	    isActive = false;
+	  else
+	    isActive = true;
+	  break;			    
+	case SDL_VIDEORESIZE:
+	  surface = SDL_SetVideoMode(event.resize.w, event.resize.h, 16, videoFlags);
+	  if(!surface) {
+	    fprintf(stderr, "Could not get a surface after resize: %s\n", SDL_GetError());
+	    SDL_Quit();
+	    exit(1);
+	  }
+	  Resize(event.resize.w, event.resize.h);
+	  break;
+	case SDL_KEYDOWN:
+	  handleKeyPress(&event.key.keysym);
+	  break;
+	case SDL_KEYUP:
+	  scroller = 0;
+	  break;
+	case SDL_QUIT:
+	  done = true;
+	  break;
+	default:
+	  break;
+	}
+      }
+      if(scroller == -1)
+	if(scroll > 0)
+	  scroll -= 2;
+      if(scroller ==  1)
+	if(scroll < 32*(maxtokens-9))
+	  scroll += 2;
+      if(isActive)
+	DrawGLScene();
+  }
+  SDL_Quit();
+  exit(0);
+}
+
Index: /orxonox/branches/sound/hud/hud.h
===================================================================
--- /orxonox/branches/sound/hud/hud.h	(revision 3019)
+++ /orxonox/branches/sound/hud/hud.h	(revision 3020)
@@ -2,11 +2,46 @@
 #define HUD_H
 
+#include <stdlib.h>
+#include <stdio.h>
+#include <stdarg.h>
+#include <string.h>
+#include <GL/gl.h>
+#include <GL/glu.h>
+#include "SDL.h"
+
+#define SCREEN_WIDTH  640
+#define SCREEN_HEIGHT 480
+#define SCREEN_BPP     16
+
 class Hud {
-
  public:
+  typedef struct {
+    GLubyte *imageData;	// Image Data
+    GLuint bpp;		// Image bits per pixel.
+    GLuint width;	// Image width
+    GLuint height;	// Image height
+    GLuint texID;	// Texture ID
+  } TextureImage;
   Hud ();
   ~Hud ();
-
+  bool LoadTGA(TextureImage *texture, char *filename);
+  GLvoid BuildFont(GLvoid);
+  GLvoid KillFont(GLvoid);
+  GLvoid glPrint(GLint x, GLint y, int set, const char *fmt, ...);
+  void Resize(int width, int height);
+  int InitGL();
+  void handleKeyPress(SDL_keysym *keysym);
+  void DrawGLScene();
+  int main( int argc, char **argv );
+  SDL_Surface* surface;
+  int scroll;
+  int maxtokens;
+  int swidth;
+  int sheight;
+  int scroller;
+  GLuint base;
+  TextureImage textures[1];
 };
 
+
 #endif
Index: /orxonox/branches/sound/sound/Makefile
===================================================================
--- /orxonox/branches/sound/sound/Makefile	(revision 3020)
+++ /orxonox/branches/sound/sound/Makefile	(revision 3020)
@@ -0,0 +1,12 @@
+CC = gcc -Wall -ansi
+SOURCE = sound_control.cc
+FLAGS = `sdl-config --cflags --libs` -lSDL_mixer
+BINARY = sound
+
+all:
+	$(CC) $(SOURCE) -o $(BINARY) $(FLAGS)
+
+clean:
+	@echo Cleaning up...
+	@rm $(BINARY)
+	@echo Done.
Index: /orxonox/branches/sound/sound/sound_control.cc
===================================================================
--- /orxonox/branches/sound/sound/sound_control.cc	(revision 3019)
+++ /orxonox/branches/sound/sound/sound_control.cc	(revision 3020)
@@ -18,10 +18,16 @@
 using namespace std;
 
-SoundControl* SoundControl::instance = NULL;
+int sfx_channel1 = -1;
+int sfx_channel2 = -1;
+int finished = 0;
+static SoundControl* instance = NULL;
+static SoundControl* sound = SoundControl::getInstance();
 int volume = SDL_MIX_MAXVOLUME;
 int track_number = 1;
 static Mix_Music* music = NULL;
-int audio_rate = MIX_DEFAULT_FREQUENCY, audio_channels = MIX_DEFAULT_CHANNELS, audio_buffers = 16384, bits = 0; 
+int audio_rate = 44100, audio_channels = MIX_DEFAULT_CHANNELS, 
+audio_buffers = 16384, bits = 0; 
 Uint16 audio_format = MIX_DEFAULT_FORMAT;
+SDL_Event event;
 
 
@@ -33,24 +39,17 @@
 */ 
 SoundControl::SoundControl () { 
-
-  /*
-  initializing sound and calling Mix_OpenAudio 
-  if(SDL_Init(SDL_INIT_AUDIO)<0){ 
+  if(SDL_Init(SDL_INIT_AUDIO)<0) {
     printf("SDL_Init: INIT_AUDIO error.\n"); 
   } 
-  */
-  
-  if(Mix_OpenAudio(audio_rate, audio_format, audio_channels, audio_buffers)){ 
+  if(Mix_OpenAudio(audio_rate, audio_format, audio_channels, audio_buffers)) { 
     printf("Mix_OpenAudio: Failed to open audio!\n"); 
   } 
-  
   initialise();
 }
 
-
 /** 
     \brief Default destructor 
 */ 
-SoundControl::~SoundControl () { 
+SoundControl::~SoundControl () {
 }
 
@@ -71,9 +70,7 @@
 
 /** 
-    \brief Is called by SoundControl object to initiate all values 
+    \brief Is called by SoundControl object to initiate all values and to output some text
 */ 
 void SoundControl::initialise() { 
-  
-  // Print some info 
   Mix_QuerySpec(&audio_rate, &audio_format, &audio_channels); 
   bits=audio_format&0xFF; 
@@ -82,7 +79,6 @@
 } 
 
-
-/** 
-    \brief Sets the number of output Channels (should not be used)
+/** 
+    \brief Sets the number of output Channels
 */ 
 void SoundControl::setNumberOfChannels (int number_of_channels) { 
@@ -90,10 +86,9 @@
 } 
 
-
 /** 
     \brief May be called from any WorldEntity to play a .xm file 
     \param filename: self-explanatory 
 */ 
-int SoundControl::playMod (char* fileName) {
+void SoundControl::playMod (char* fileName) {
   Mix_Chunk* chunk = NULL; 
   chunk = Mix_LoadWAV(fileName); 
@@ -103,10 +98,9 @@
 }
 
-
 /** 
     \brief May be called from any WorldEntity to play a .wav file 
     \param filename: self-explanatory 
 */ 
-int SoundControl::playWav (char* fileName) {
+void SoundControl::playWav (char* fileName) {
   Mix_Chunk* chunk = NULL; 
   chunk = Mix_LoadWAV(fileName); 
@@ -116,18 +110,16 @@
 } 
 
-
 /** 
     \brief May be called from any WorldEntity to play a .ogg file 
     \param filename: self-explanatory 
 */ 
-int SoundControl::playOgg (char* fileName) {
+void SoundControl::playOgg (char* fileName) {
   Mix_Music* music = NULL;
   music = Mix_LoadMUS(fileName);
-  if(Mix_PlayMusic(music, 1) == -1){
+  if(Mix_PlayMusic(music, 1) == -1) {
     printf("Mix_PlayMusic: %s\n",Mix_GetError());
   }
   Mix_HookMusicFinished(musicDone);
 } 
-
 
 /** 
@@ -150,5 +142,4 @@
 } 
 
-
 /** 
     \brief Rewinds music to the beginning 
@@ -158,5 +149,4 @@
 } 
 
-
 /** 
     \brief Rewinds the music 5 seconds 
@@ -166,5 +156,4 @@
 } 
 
-
 /** 
     \brief Forwards the music 5 seconds 
@@ -174,5 +163,4 @@
 } 
 
-
 /** 
     \brief Pauses music output 
@@ -182,5 +170,4 @@
 } 
 
-
 /** 
     \brief this function pauses music output 
@@ -189,5 +176,4 @@
   Mix_ResumeMusic();
 } 
-
 
 /** 
@@ -199,2 +185,65 @@
   music = NULL;
 } 
+
+/** 
+    \brief Handles input events
+*/ 
+void SoundControl::handleKey(SDL_KeyboardEvent key) {
+  switch(key.keysym.sym) {
+  case SDLK_a:
+    if(key.type == SDL_KEYDOWN) {
+      if(sfx_channel1 < 0) {
+	sfx_channel1 = sound->playWav("sound1.wav");
+      }
+    } else {
+      Mix_HaltChannel(sfx_channel1);
+      sfx_channel1 = -1;
+    }
+    break;
+  case SDLK_s:
+    if(key.type == SDL_KEYDOWN) {
+      if(sfx_channel2 < 0) {
+	sfx_channel2 = sound->playWav("sound2.wav");
+      }
+    } else {
+      Mix_HaltChannel(sfx_channel2);
+      sfx_channel2 = -1;
+    }
+    break;
+  case SDLK_m:
+    if(key.state == SDL_PRESSED) {
+      sound->playOgg("music.ogg");
+    }
+    break;
+  case SDLK_q:
+    finished = 1;
+    break;
+  default:
+    break;
+  }
+}
+
+int SoundControl::main(void) {
+  SDL_Surface* screen;
+  SDL_Init(SDL_INIT_VIDEO|SDL_INIT_AUDIO); 
+  screen = SDL_SetVideoMode(320, 240, 0, 0);
+  while(!finished) {
+    while(SDL_PollEvent(&event)) {
+      switch(event.type) {
+      case SDL_QUIT:
+	finished = 1;
+	break;
+      case SDL_KEYDOWN:
+      case SDL_KEYUP:
+	SoundControl::handleKey(event.key);
+	break;
+      default:
+	break;
+      }
+    }
+    SDL_Delay(50);
+  }
+  deleteInstance();
+  SDL_Quit();
+  return 0;
+}
Index: /orxonox/branches/sound/sound/sound_control.h
===================================================================
--- /orxonox/branches/sound/sound/sound_control.h	(revision 3019)
+++ /orxonox/branches/sound/sound/sound_control.h	(revision 3020)
@@ -7,12 +7,11 @@
 
 class SoundControl {
-
  public:
   static SoundControl* getInstance();
   static void deleteInstance();
   void setNumberOfChannels(int number_of_channels);
-  int playMod(char* filename);
-  int playWav(char* filename);
-  int playOgg(char* filename);
+  void playMod(char* filename);
+  void playWav(char* filename);
+  void playOgg(char* filename);
   void volumeUp();
   void volumeDown();
@@ -23,4 +22,7 @@
   void resumeMusic();
   static void musicDone();
+  void handleKey(SDL_KeyboardEvent key); 
+  int main (void);
+  static SoundControl* instance;
   int volume;
   int track_number;
@@ -28,12 +30,11 @@
   int done;
   Uint16 audio_format;
-
-protected:
+  int sfx_channel1;
+  int sfx_channel2;
+  int finished;
+private:
   void initialise();
   SoundControl();
   ~SoundControl();
-
-private:
-  static SoundControl* instance;
 };
 
Index: xonox/branches/sound/sound/sound_test.cc
===================================================================
--- /orxonox/branches/sound/sound/sound_test.cc	(revision 3019)
+++ 	(revision )
@@ -1,93 +1,0 @@
-/* 
-   orxonox - the future of 3D-vertical-scrollers
-
-   Copyright (C) 2004 orx
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-   ### File Specific:
-   main-programmer: Simon Hofmann
-   co-programmer:
-*/
-
-#include "sound_test.h"
-
-using namespace std;
-
-SoundControl* sound = NULL;
-int sfx_channel1 = -1;
-int sfx_channel2 = -1;
-int finished = 0;
-
-SoundTest::SoundTest() {
-  sound = SoundControl::getInstance();
-}
-
-SoundTest::~SoundTest() {
-  sound->deleteInstance();
-}
-
-int main(void) {
-  SoundTest();
-  SDL_Surface *screen;
-  SDL_Event event;
-  SDL_Init(SDL_INIT_VIDEO|SDL_INIT_AUDIO); 
-  screen = SDL_SetVideoMode(320, 240, 0, 0);
-  while(!finished) {
-    while(SDL_PollEvent(&event)) {
-      switch(event.type) {
-      case SDL_QUIT:
-	finished = 1;
-	break;
-      case SDL_KEYDOWN:
-      case SDL_KEYUP:
-	handleKey(event.key);
-	break;
-      }
-    }
-    SDL_Delay(50);
-  }
-  SDL_Quit();
-}
-
-void handleKey(SDL_KeyboardEvent key) {
-  switch(key.keysym.sym) {
-  case SDLK_a:
-    if(key.type == SDL_KEYDOWN) {
-      if(sfx_channel1 < 0) {
-	sfx_channel1 = sound->playWav("sound1.wav");
-      }
-    } else {
-      Mix_HaltChannel(sfx_channel1);
-      sfx_channel1 = -1;
-    }
-    break;
-  case SDLK_s:
-    if(key.type == SDL_KEYDOWN) {
-      if(sfx_channel2 < 0) {
-	sfx_channel2 = sound->playWav("sound2.wav");
-      }
-    } else {
-      Mix_HaltChannel(sfx_channel2);
-      sfx_channel2 = -1;
-    }
-    break;
-  case SDLK_m:
-    if(key.state == SDL_PRESSED) {
-      if(sound.music == NULL) { 
-	sound->playOgg("music.ogg");
-      } else {
-	Mix_HaltMusic();
-	Mix_FreeMusic(music);
-	music = NULL;
-      }
-    }
-    break;
-  case SDLK_q:
-    finished = 1;
-    break;
-  }
-}
Index: xonox/branches/sound/sound/sound_test.h
===================================================================
--- /orxonox/branches/sound/sound/sound_test.h	(revision 3019)
+++ 	(revision )
@@ -1,21 +1,0 @@
-#ifndef SOUND_TEST_H
-#define SOUND_TEST_H
-
-#include "sound_control.h"
-#include "SDL/SDL.h"
-#include "SDL/SDL_mixer.h"
-
-class SoundTest {
-
- public:
-  SoundTest();
-  ~SoundTest();
-  int main (void);
-  void handleKey(SDL_KeyboardEvent key);
-  SoundControl* sound;
-  int sfx_channel1;
-  int sfx_channel2;
-  int finished;
-};
-
-#endif
