Re: [Jack-Devel] RFC: fix for missing port registration notifications when switching master

PrevNext  Index
DateFri, 29 Apr 2011 00:30:43 +0300
From Nedko Arnaudov <[hidden] at arnaudov dot name>
ToStéphane Letz <[hidden] at grame dot fr>
Cc[hidden] at lists dot jackaudio dot org
In-Reply-ToStéphane Letz Re: [Jack-Devel] RFC: fix for missing port registration notifications when switching master
Follow-UpStéphane Letz Re: [Jack-Devel] RFC: fix for missing port registration notifications when switching master
Stéphane Letz <[hidden]> writes:

> Le 24 avr. 2011 à 22:38, Nedko Arnaudov a écrit :
>
>> The issue was reported in #213 (second issue/patch):
>> 
>> jackdbus' internal graph representation is not properly kept in sync
>> with the engine's graph. In particular: ports are not properly removed
>> From the connection list when a client goes away; and ports
>> re-appearing after a "switch-master" are not being updated (Patch
>> 2/2).
>> 
>> I think the proposed patch is wrong because AFAIK graph reorder is only
>> for ports present upon client activation. All following port
>> (un)registrations must cause the port registration callback to be
>> called. The proposed changeset [1] adds notification calls in the
>> Attach()/Detach() methods. The changeset is commited to a dedicated
>> branch [2]. The branch is (hopefully) a short living one with a signle
>> commit, so it makes sense to commit it directly to svn trunk (after
>> eventually rebasing it, of the svn trunk moved).
>> 
>> Robin, I'd be glad if you can test & report whether my fix works for
>> you.
>> 
>> [1] http://repo.or.cz/w/jack2.git/commitdiff/55557d1f74b6d0ca80981bad9cd646d69c896e0e
>> [2] http://repo.or.cz/w/jack2.git/shortlog/refs/heads/switch-master-port-registration-notifications
>> 
>> -- 
>> Nedko Arnaudov <GnuPG KeyID: 7862B9E45D1B58ED>
>
>
> http://repo.or.cz/w/jack2.git/commitdiff/07d2c64f39634454cb61f26316bdb07d77cf0cfb
>
> Should be a bit cleaner.
>
> Can you test?

It fails to compile:

[114/257] cxx: linux/alsa/JackAlsaDriver.cpp -> build/default/linux/alsa/JackAlsaDriver_2.o
../linux/alsa/JackAlsaDriver.cpp: In member function 'virtual int Jack::JackAlsaDriver::Attach()':
../linux/alsa/JackAlsaDriver.cpp:119: error: expected '(' before 'if'
../linux/alsa/JackAlsaDriver.cpp:134: error: invalid conversion from 'int*' to 'jack_port_id_t*'
../linux/alsa/JackAlsaDriver.cpp:134: error:   initializing argument 6 of 'int Jack::JackLockedEngine::PortRegister(int, const char*, const char*, unsigned int, unsigned int, jack_port_id_t*)'
../linux/alsa/JackAlsaDriver.cpp:147: error: invalid conversion from 'int*' to 'jack_port_id_t*'
../linux/alsa/JackAlsaDriver.cpp:147: error:   initializing argument 6 of 'int Jack::JackLockedEngine::PortRegister(int, const char*, const char*, unsigned int, unsigned int, jack_port_id_t*)'

-- 
Nedko Arnaudov <GnuPG KeyID: 7862B9E45D1B58ED>
PrevNext  Index

1304026692.5011_0.ltw:2,a <87wrief4ho.fsf at nuntu dot spacelabs dot org>