type SDL_KEYDOWN or SDL_KEYUP
state SDL_PRESSED or SDL_RELEASED
SDL_!KeyboardEvent? is a member of the SDL_Event union and is used when an event of type SDL_KEYDOWN or SDL_KEYUP is reported.
The type and state actually report the same information, they just use different values to do it! A keyboard event occurs when a key is released (typeSDK_KEYUP or stateSDL_RELEASED) and when a key is pressed (typeSDL_KEYDOWN or stateSDL_PRESSED). The information on what key was pressed or released is in the keysym structure.