LINUX.ORG.RU

SDL 1.3: Error: Couldn't open stream


0

1
SDL_Touch* touch = SDL_GetTouchIndex(i);
	if(!touch) printf("Touch %i/%i DNE\n",i,SDL_GetNumTouch());
	EventTouchData* data;
	data = (EventTouchData*)(touch->driverdata);
	if(data == NULL) {
	  printf("No driver data\n");
	  continue;
	}
	if(data->eventStream <= 0) 
	    printf("Error: Couldn't open stream\n");

Валится с ошибкой на этом куске при попытке сделать

SDL_Init(SDL_INIT_VIDEO|SDL_INIT_AUDIO)

На stackoverflow была такая же тема, но там заглохло на том, что один убунтоид сказал «УМВР». Если у кого стоит SDL 1.3(в нём прикрутили SDL_GLContext для нормальной работы с openGL выше второго, поэтому пришлось устанавливать его), попробуйте, пожалуйста, скомпилить с `sdl-config --cflags --libs`

#include <stdio.h>
#include <SDL.h>
#include <GL/gl3.h>

int main(int argc, char **argv) {
    if(!SDL_Init(SDL_INIT_VIDEO|SDL_INIT_AUDIO))
    {
      printf("Error while initialising sdl\n");
      exit(-1);
    }
    SDL_Quit();
    return 0;
}

★★★★

Ответ на: комментарий от wingear

а что дальше не судьба проверить?

void
X11_InitTouch(_THIS)
{
#ifdef SDL_INPUT_LINUXEV

- этот дефайн

  FILE *fd;
  fd = fopen("/proc/bus/input/devices","r");
- этот девайс

  char c;
  int i = 0;
  char line[256];
  char tstr[256];
  int vendor = -1,product = -1,event = -1;
  while(!feof(fd)) {
    if(fgets(line,256,fd) <=0) continue;
    if(line[0] == '\n') {
    if(vendor == 1386 || vendor==1){

        sprintf(tstr,"/dev/input/event%i",event);

        SDL_Touch touch;
        touch.pressure_max = 0;
        touch.pressure_min = 0;
        touch.id = event;


        touch.driverdata = SDL_malloc(sizeof(EventTouchData));
        EventTouchData* data = (EventTouchData*)(touch.driverdata);

        data->x = -1;
        data->y = -1;
        data->pressure = -1;
        data->finger = 0;
        data->up = SDL_FALSE;
    data->down = SDL_FALSE;


        data->eventStream = open(tstr,

ну и далее по коду же

anonymous2 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.