Kamevoice V1.2.1

A quick note about V1.2.1

This is the latest version of kamevoice. No user ever reported any problems with kamevoice at all, so I never had the need to update the program at all. Anyways, as the C++ Standard evolved and gcc began to actually enforce the current standards of C++ and dropped the earlier policy of looking away for the sake of easier, quicker, but uncleaner code, I was forced by myself to update the old code of kamevoice to the current standards, as users were not able to compile it anymore on recent systems.

This sounds not bad at all yet, does it? Well there IS actually ONE caveat. I don’t have a GameVoice Device anymore. 🙂 The code is running but not tested AT ALL.

So this version is dedicated to all the kamevoice users out there who want to use their little old gadget until it squirks out his last bit of LED light. I updated the code, everything just compiles nicely on a recent SuSE 10.3 against Qt3. I really hope you enjoy this peace of software, as much as I enjoyed packing out this old piece of code to give it a very last trim…

I gladly give out the project to anyone ho might be interested to take over. Just contact me like mentioned on the bottom of this page.

UPDATE: I got my hand on a gamevoice again, so I was able to compile and test the code again on an Ubuntu 8.10, which seems to be a fairly recent distro at the moment. 🙂 Ubuntu seems to have kicked out the hiddev devices from the udev configuration, so I had to add the following line to the /etc/udev/rules.d/95-udev-late.rules file:

BUS="usb", SYSFS{idVendor}="045e", NAME="usb/hiddev%n"

This was enough to get it all running again. This line reactivates the hiddev device nodes only for devices which have the same VendorID as the gamevoice.

What is Kamevoice ?

KameVoice is a Program to utilize the Microsoft GameVoice USB device as general control device in KDE. It is able to map all sort of standard shell commands to buttons of the GameVoice. It is easy to configure and should be 100% stable while using very little Resources while running.

Are there screenshots ?

KDE Systray Icon
Main Configuration Window

What is needed to run KameVoice ?

Kamevoice utilizes the linux hiddev usb devicedriver. It is a generic driver that enables programs to access all sorts of USB-HID Devices in a generic way. So, if you run a recent Linux Kernel with KDE 3 you should be very well set for running KameVoice. When you start KameVoice, it will probe all /dev/usb/hiddev devices for an attached GameVoice. If you attached it to your usb bus and loaded the hiddev module, Kamevoice should find the GameVoice and start.

The code was developed and tested on an P3 650 with SuSE Linux 8.2 Kernel Version 2.4.20. ( EDIT: How sweet, this was top of the line at that time… 😀 )

How does it work ?

After starting KameVoice the first time, it shows itself in the KDE SystemTray. If you don’t click on it, KameVoice will remain in background doing nothing. That is mainly because it hasn’t any data to which the buttons of the GameVoice can be bound to. KameVoice gives you the ability to bind shell commands to GameVoice buttons. for that purpose, you can define actions. Actions are nothing more than shell commands which are identified by a simple string. You can add, edit and delete those actions with the center ListView. After defining them, you can bind them to a certain button through the upper table in the KameVoice Window. After defining and binding actions, KameVoice will store these settings persitently in a config file which resides at ~/.kamevoicerc. It is automatically parsed and saved. After minimizing the KameVoice window, the gamevoice buttons will work as you wanted them to, every time you start KameVoice. You can observe the function of the USB listening thread by watching at the LEDs left of the upper Table. Each LED represents one of the GameVoice buttons. If one buttons is pushed, the representing LED should light.

Starting with KameVoice V1.1, it is now possible to bind actions even to a deactivation of a certain button. But not all of the buttons on Gamevoice can be activated at all time. If i.e. Mute is active, no other buttons can be activated. That is a limitation based on design of the Gamevoice. Keep that in mind while assigning actions to the buttons.

How does KameVoice compile ?

Please look at README and INSTALL notes in the distribution archive.

Kamevoice couldn’t find my GameVoice device, what can I do?

The following problems are the most common:

Is the device actually plugged in/recognized by your system ?

Yeah, don’t laugh or insult me, it HAS happened. 🙂 If your device actually IS plugged in but not recognized by your system, please check your usb configuration. Maybe you have to associate your gamevoice with the hid module. Do so through the hotplug system, RTFM for that, Vendor ID is 0x045e, Device ID is 0x003b.

The system recognizes the device, but it still won’t work !

Most commonly the permissions on the device files under /dev/usb/hiddev* are wrong. Please check that. Kamevoice assumes that the hiddev nodes are in that path, so if they aren’t, please make sure that they get there or kamevoice won’t work. This path is hardcoded (yeah, I know, I’m feeling a little bit bad about this), so you have to obey this path or change the path in the sources by your self.

If this doesn’t help you, feel free to contact me through the email adress mentioned in the distribution archive.

Download Kamevoice:

KameVoice V1.2.1 Sources (bzipped, 595K)