From owner-freebsd-bluetooth@FreeBSD.ORG Tue May 3 19:13:10 2011 Return-Path: Delivered-To: freebsd-bluetooth@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EF1041065674 for ; Tue, 3 May 2011 19:13:09 +0000 (UTC) (envelope-from maksim.yevmenkin@gmail.com) Received: from mail-bw0-f54.google.com (mail-bw0-f54.google.com [209.85.214.54]) by mx1.freebsd.org (Postfix) with ESMTP id 77CD98FC0C for ; Tue, 3 May 2011 19:13:09 +0000 (UTC) Received: by bwz12 with SMTP id 12so549887bwz.13 for ; Tue, 03 May 2011 12:13:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=diZG4/KRffeml5k1cZcF0Kd76dDUTVlhirsez9RLa2s=; b=AjoMn0W9vXzWI5XZRVomSb60T6fxJOQ2guTYTOVJnIlr/NyKyg+d3LRP5dEpYrm4iF TfF1U9eKK9e6aDc2m78NUWfjwOGtD10tRWzkCZumXEATmbjELOAk8BleVR1aw56/pnl0 8dCbbFNF0L1fHfc4//ya9p7F+UHrKEqXlk4rY= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; b=rfE80MzDBaugJmKOJuGU/wpQMXgCzf0qz0f/6kD5hbMzw3I9+Z5LmHbsYHYoLfCPw6 XlL4s8uLavTrxWf/OK8i5dG5h2UrbVuuB4ypIXtq4+9qka5Lx7NO0s5ZXpM9G3dXlH26 nyX0NJ4TzKbwaxNCwxa0Os4o8PfeYDIRwJ/b8= MIME-Version: 1.0 Received: by 10.204.25.194 with SMTP id a2mr171855bkc.197.1304449988177; Tue, 03 May 2011 12:13:08 -0700 (PDT) Received: by 10.204.39.133 with HTTP; Tue, 3 May 2011 12:13:08 -0700 (PDT) In-Reply-To: <4DC0513A.5000805@gmail.com> References: <4D3889D2.80508@gmail.com> <201101202043.p0KKhDIB076736@lurza.secnetix.de> <4DBF0D26.8020703@gmail.com> <4DC0513A.5000805@gmail.com> Date: Tue, 3 May 2011 12:13:08 -0700 Message-ID: From: Maksim Yevmenkin To: David Demelier Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: freebsd-bluetooth@freebsd.org Subject: Re: Bluetooth mouse does not connect after reboot X-BeenThere: freebsd-bluetooth@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Using Bluetooth in FreeBSD environments List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 May 2011 19:13:10 -0000 On Tue, May 3, 2011 at 12:02 PM, David Demelier wrote: > On 02/05/2011 22:24, Maksim Yevmenkin wrote: >> >> On Mon, May 2, 2011 at 12:59 PM, David Demelier >> =A0wrote: >> >>> >>> I'm sorry to disturb you again.. I'm still guessin where to search how = to >>> get these horizontal events with my bluetooth mouse. I thing the >>> mouse_info >>> structure does not need to be extended I have a USB mouse that has the >>> same >>> horizontal buttons and they just works ! >>> >>> They sends 7 and 8 events to X (checked with xev) >>> >>> What can I do to extend bthidd and this button support ? >> >> like i said before, you need to decode AC_Pan data from the report. i >> just took a quick look at ums(4) driver and, it appears, that AC_Pan >> events are translated into button events, i.e. values< =A00 is mask (1 >> << =A03) and values> =A00 is mask (1<< =A04) . you can add identical >> translation to bthidd(8) to see if it works. you will need to modify >> hid_interrupt() function in hid.c > > Max, > > I successfully made the patch but it's not the same mask. This diff just > works! > > --- hid.c.orig =A02011-05-02 22:09:48.000000000 +0200 > +++ hid.c =A0 =A0 =A0 2011-05-03 20:57:46.000000000 +0200 > @@ -168,6 +168,16 @@ > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0usage =3D HID_USAGE(h.usage); > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0val =3D hid_get_data(data, &h); > > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 /* Horizontal buttons */ > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 if (page =3D=3D HUP_CONSUMER && usage =3D= =3D HUC_AC_PAN) { > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 if (val < 0) > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 mouse_butt = |=3D (1 << 5); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 else if (val > 0) > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 mouse_butt = |=3D (1 << 6); > + > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 mevents ++; > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 } > + > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0switch (page) { > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0case HUP_GENERIC_DESKTOP: > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0switch (usage) { > > Do you think it's a diff suitable to commit ? > > I'm so happy to make my horizontal buttons working :):) ah, i see you already figured it out :) i can commit something like this, i suppose. i would just move the statement into switch() below. i suppose we could just document that ac_pan is encoded as 8 and 9 button presses. thanks, max