Версия для печати темы

Нажмите сюда для просмотра этой темы в оригинальном формате

GBX.ru _ GP2X _ Вибрация Caanoo

Автор: quasist Вторник, 23 ноября 2010, 11:45

Чтобы не тратить драгоценные человекочасы на программирование индивидуально каждого эффекта(ал-ля форс фиидбек из DirectX) решил пойти более простым способом.

Код трясёт кену в зависимости от zl_vibro

Также думаю ввод вибрации сделать через функцию вроде vibe_effect(force,delay) которая будет складывать все эффекты.

И конечно же сделать кривую вибрации кривой, а не квадратной как в этом коде smile.gif

CODE

//////////////////////////////////////

#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/ioctl.h>
#include <fcntl.h>
#include <unistd.h>

#include "simple_isa1200if.h"

#define DEVICE_FILENAME "/dev/isa1200"
int fd;
void zlInitVibe(void)
{
fd=open(DEVICE_FILENAME,O_RDWR|O_NDELAY);
ioctl(fd,IOCTL_MOTOR_DRV_ENABLE);
}
pattern_data_t vibedata={.act_number=4,.vib_act_array={{0,126},{10,126},{20,126},{30,0}}};
void zlProcVibe(void)
{
if (zl_vibro>-64) zl_vibro-=20;
if (zl_vibro>-64)
{
vibedata.vib_act_array[0].vib_strength=zl_vibro;
vibedata.vib_act_array[1].vib_strength=zl_vibro;
vibedata.vib_act_array[2].vib_strength=zl_vibro;
ioctl(fd, IOCTL_PLAY_PATTERN, &(vibedata));
}
}

void zlShutDownVibe(void)
{
ioctl(fd,IOCTL_MOTOR_DRV_DISABLE);
close(fd);
}

///////////////////////////////////////



Автор: EugeneP Вторник, 23 ноября 2010, 20:39

Уа-а--а-а ;__;
Дайтеденегнаприставочкуууууу. Тожехочубаловатьсяяяяяя.