Search code examples
pythonsdlpygame

How to suppress console output in Python?


I'm using Pygame/SDL's joystick module to get input from a gamepad. Every time I call its get_hat() method it prints to the console. This is problematic since I use the console to help me debug and now it gets flooded with SDL_JoystickGetHat value:0: 60 times every second. Is there a way I can disable this? Either through an option in Pygame/SDL or suppress console output while the function calls? I saw no mention of this in the Pygame documentation.

edit: This turns out to be due to debugging being turned on when the SDL library was compiled.


Solution

  • Here's the relevant block of code from joystick.c (via SVN at http://svn.seul.org/viewcvs/viewvc.cgi/trunk/src/joystick.c?view=markup&revision=2652&root=PyGame)

        value = SDL_JoystickGetHat (joy, _index);
    #ifdef DEBUG
        printf("SDL_JoystickGetHat value:%d:\n", value);
    #endif
        if (value & SDL_HAT_UP) {
    

    Looks like a problem with having debugging turned on.