Anteriormente escrevi as instruções necessárias para usar o comando da Wii nos menus do XBMC através do xbmc-eventclients-wiiremote.
Funciona muito bem em computadores com sistemas de 32bits, mas se for de 64bits como é o caso do meu myHTPC que utiliza o Ubuntu de 64bits não funciona correctamente devido a problemas de conexões e desconexões sucessivas do wii-remote, coisa que parece ser comum nos sistemas de 64bits utilizando apenas o xbmc-eventclients-wiiremote que se encontra disponível no repositório oficial do xbmc!
Para contornar isso é preciso usar o wiiuse que é uma biblioteca escrita em C para ligar vários wii-remotes e utilizar todas as suas funcionalidades e botões. Com o wiiuse temos o wii-remote a funcionar no Ubuntu de 32 ou 64 bits sem problemas :)
As instruções para ligar o Wii-remote ao PC através do WiiUse:
1 - Vou efectuar o download do pacote fonte do XBMC e vou extrai-lo na minha home directory. (/home/nasp/xbmc-9.11/) este pacote inclui o wiiuse.
2 - Só preciso de compilar e criar o executável referente ao wiiuse que se encontra em ( /home/nasp/xbmc-9.11/tools/EventClients/Clients/WiiRemote )
3 - Mas antes é preciso fazer uma alteração num ficheiro com o nome io_nix.c que se encontra em ( /home/nasp/xbmc-9.11/tools/EventClients/Clients/WiiRemote/wiiuse_v0.12/src ). "Pois sem esta alteração o programa não funciona correctamente"
4 - Abrindo este ficheiro com um editor de texto como o gedit vou adicionar o seguinte na linha numero 174 do ficheiro io_nix.c ( ADICIONEI SÓ A LINHA A VERMELHO ) e salvei a alteração:
struct sockaddr_l2 addr;
memset(&addr, 0, sizeof (addr));
if (!wm || WIIMOTE_IS_CONNECTED(wm))
return 0;
5 - Agora já posso compilar o wiiuse, e na consola digito : cd /home/nasp/xbmc-9.11/tools/EventClients/Clients/WiiRemote
6 - E o comando para criar o executável, digito : make
7 - Como tudo correu bem sem erros foi criado um executável “WiiUse_WiiRemote” que passarei a utilizar na ligação. ( Atenção que este executável têm de correr sempre dentro da pasta onde estiver a subpasta do wiiuse_v0.12, porque necessita de algumas bibliotecas em C ai presentes!!)
8 - Faço o primeiro teste de ligação e na consola digito : ./WiiUse_WiiRemote
9 - Cliquei nos botões 1 e 2 do wii-remote ao mesmo tempo, e como a ligação foi bem sucedida (2 a 3 segundos de espera) o wii-remote vibrou e acendeu-se a luz do comando respeitante ao jogador 1. Se abrir o XBMC passarei a controlar logo os menus só com o wii-remote, pois todos os botões já se encontram configurados através do ficheiro joystick.WiiRemote.xml que se encontra presente em qualquer instalação do XBMC (na pasta system/keymaps).
10 - Como se pretende usar o wii-remote como único comando do XBMC, e mais concretamente do xbmc-standalone é preciso executar o comando no arranque do PC, para isso só preciso de adicionar o seguinte comando ao ficheiro rc.local : (colei o comando antes do final do ficheiro e antes de exit 0 )
sudo gedit /etc/rc.local
11 - Copiei e colei este comando :
cd /home/nasp/WiiRemote && ./WiiUse_WiiRemote
12 - Não se esqueçam que têm que ter bluetooth no PC, reconhecido e instalado ( sudo apt-get install bluez-utils )
Caso existam alguns erros na criação do executável apaguem tudo e antes de recomeçarem instalem estes pacotes:
sudo apt-get install build-essential libbluetooth-dev libxtst-dev
sudo apt-get install freeglut3 freeglut3-dbg freeglut3-dev libglu1-mesa libglu1-mesa-dev libglui2c2 libglui-dev libglut3 libglut3-dev blueman libsdl1.2-dev
Usar o wii-remote como comando do XBMC pode não ser a melhor opção só devido ao custo do comando em si, porque de resto funciona 5 estrelas!!!
sudo apt-get install build-essential libbluetooth-dev libxtst-dev
sudo apt-get install freeglut3 freeglut3-dbg freeglut3-dev libglu1-mesa libglu1-mesa-dev libglui2c2 libglui-dev libglut3 libglut3-dev blueman libsdl1.2-dev
ao executar o comando make, sempre acontecem os erros:
ResponderEliminarmake[1]: Saindo do diretório `/home/igor/xbmc-9.11/tools/EventClients/Clients/WiiRemote/wiiuse_v0.12/src'
g++ -Wall -pipe -fPIC -funroll-loops WiiUse_WiiRemote.cpp wiiuse_v0.12/src/release-x86_64-linux-gnu/libwiiuse.so -o WiiUse_WiiRemote
In file included from WiiUse_WiiRemote.cpp:18:
WiiUse_WiiRemote.h:32:20: error: wiiuse.h: Arquivo ou diretório não encontrado
In file included from WiiUse_WiiRemote.cpp:18:
WiiUse_WiiRemote.h:98: error: ‘wiimote’ has not been declared
WiiUse_WiiRemote.h: In constructor ‘CWiiController::CWiiController()’:
WiiUse_WiiRemote.h:106: warning: deprecated conversion from string constant to ‘char*’
WiiUse_WiiRemote.h: At global scope:
WiiUse_WiiRemote.h:116: error: ‘wiimote’ was not declared in this scope
WiiUse_WiiRemote.h:116: error: expected primary-expression before ‘)’ token
WiiUse_WiiRemote.h:117: error: ‘wiimote’ was not declared in this scope
WiiUse_WiiRemote.h:117: error: expected primary-expression before ‘)’ token
WiiUse_WiiRemote.h:119: error: variable or field ‘EnableMotionSensing’ declared void
WiiUse_WiiRemote.h:119: error: ‘wiimote’ was not declared in this scope
WiiUse_WiiRemote.h:119: error: ‘wm’ was not declared in this scope
WiiUse_WiiRemote.h:120: error: variable or field ‘DisableMotionSensing’ declared void
WiiUse_WiiRemote.h:120: error: ‘wiimote’ was not declared in this scope
WiiUse_WiiRemote.h:120: error: ‘wm’ was not declared in this scope
WiiUse_WiiRemote.cpp:20: error: variable or field ‘get_keys’ declared void
WiiUse_WiiRemote.cpp:20: error: ‘wiimote’ was not declared in this scope
WiiUse_WiiRemote.cpp:20: error: ‘wm’ was not declared in this scope
make: ** [all] Erro 1
AJUDA!
Igor
ResponderEliminarTenta recomeçar de novo e certificate que tens os pacotes todos instalados.
Antes de recomeçar apaga o pasta xbmc-9.11 e faz nova extracção dos arquivos e tenta novamente.
faltava instalar a biblioteca do wiiuse. pensei ter instalado anteriormente, quando não o tinha feito.
ResponderEliminarhttp://sourceforge.net/projects/wiiuse/files/