X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=source%2Finput%2Fhub.cpp;h=0bc818f1adac6e28fdda21a9afdfd639dc8dada3;hb=8f8480438244fd04058049ace22071a8e2e0b85c;hp=e6969372f9240c728d6b15deeb2f0f591caefe98;hpb=1238b80d08c1983dfa8914f78b294cd44b1a275b;p=libs%2Fgui.git diff --git a/source/input/hub.cpp b/source/input/hub.cpp index e696937..0bc818f 100644 --- a/source/input/hub.cpp +++ b/source/input/hub.cpp @@ -30,13 +30,23 @@ unsigned Hub::attach(Device &dev) std::string Hub::get_button_name(unsigned btn) const { unsigned dev_index=btn>>12; - if(dev_index>devices.size()) + if(dev_index>=devices.size()) throw InvalidParameterValue("Button does not exist"); const Device &dev=*devices[dev_index]; return dev.get_name()+": "+dev.get_button_name(btn&0xFFF); } +std::string Hub::get_axis_name(unsigned axis) const +{ + unsigned dev_index=axis>>12; + if(dev_index>=devices.size()) + throw InvalidParameterValue("Axis does not exist"); + + const Device &dev=*devices[dev_index]; + return dev.get_name()+": "+dev.get_axis_name(axis&0xFFF); +} + void Hub::button_press(unsigned btn, unsigned index) { set_button_state((index<<12) | (btn&0xFFF), true, true);