From mboxrd@z Thu Jan 1 00:00:00 1970 From: Takashi Iwai Subject: Re: [PATCH - alsa-lib 1/1] Change card/pid get functions to return -ENOSYS if the kernel is too old Date: Mon, 06 Jun 2016 16:01:21 +0200 Message-ID: References: <1459532030-6387-1-git-send-email-agoode@google.com> <20160401211558.GA20661@mail.zuhause> <20160407201041.GB26683@mail.zuhause> <5707AA7C.5030804@perex.cz> <20160408175633.GA14123@mail.zuhause> Mime-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mx2.suse.de (mx2.suse.de [195.135.220.15]) by alsa0.perex.cz (Postfix) with ESMTP id B741B265759 for ; Mon, 6 Jun 2016 16:01:22 +0200 (CEST) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: alsa-devel-bounces@alsa-project.org To: Adam Goode Cc: alsa-devel@alsa-project.org, Martin Koegler List-Id: alsa-devel@alsa-project.org On Mon, 06 Jun 2016 15:57:33 +0200, Adam Goode wrote: > > On Fri, Apr 8, 2016 at 3:53 PM, Adam Goode wrote: > > > On Fri, Apr 8, 2016 at 1:56 PM, Martin Koegler > > wrote: > > > >> On Fri, Apr 08, 2016 at 11:21:57AM -0400, Adam Goode wrote: > >> > So there are 2 alternatives I can think of: > >> > > >> > option 1: introduce snd_seq_client_info_get_pid_2() and leave the > >> existing > >> > function alone. This new function can return a new constant, > >> > SND_SEQ_CLIENT_INFO_PID_UNKNOWN for missing kernel support. Same for > >> card. > >> > option 2: introduce snd_seq_client_info_pid_known() that returns a bool > >> if > >> > there is kernel support. Same for card. > >> > >> I wouldn't implement option 1. Using that methode for API changes will > >> result in lots of rarely used functions. > >> > >> Chrome will probable need that information to enable a fallback-code - if > >> a application has no fallback code, > >> it has no need for different returncodes. In a few years, most > >> distributions will likely ship kernel including that functions, > >> so there is no need to for fallback-code and the kernel support check any > >> more. > >> > >> Why not a snd_seq_client_info_get_capatibilites() returing bit flags: > >> .._CAP_CARD_NUMBER | .._CAP_PID ? > >> > >> > > This approach is fine by me as well, though it does introduce more > > constants and bitwise logic. > > > > > Since returning to this problem after a while, I've realized that we don't > need any changes at all to alsa-lib. This test is equivalent to what is > needed: > > snd_seq_get_client_info(seq, info); // get our client's info > bool client_pid_supported = snd_seq_client_info_get_pid(info) != -1; // do > we know our own PID? Ah, yes, it works. I thought of another, e.g. checking /dev/sequencer version ioctl, but yours works more nicely. > It might be helpful to put this into the documentation, but otherwise I > think this is fine. A patch is always welcome :) thanks, Takashi