RedInfoBat read current battery capacity



Only works on newer portable Mac models running OS X (10.4 or newer).


see also: RedInfoLmu RedInfoSms


*kr(trig)

returns battery capacity in percent.

-1 if battery no installed.

trig asks for a new reading.  the maximum reading rate internally is 2Hz.

note: there is only one reading function internally.  a trigger will cause global reading for all ugens.

it makes little sense to have this ugen running in multiple synths.  use busses.



//--

s.boot;

{RedInfoBat.kr(Impulse.kr(0.1)).poll}.play; //update every 10 second



//idea: use as master tuning

//1.0 could correspond to 440Hz and as the battery power drops, the 440 reference follows


//--gui test

(

s.waitForBoot{

        var syn, osc;

        var w= Window("RedInfoBat test", Rect(100, 200, 300, 120));

        var c= [0, 1, 'lin', 0, 0].asSpec;

        var b= EZSlider(w, Rect(0, 10, 280, 20), "battery", c);

        w.view.background= Color.red(0.75);

        w.front;

        

        syn= SynthDef(\batterycapacity, {|rate= 0.1|            //update rate

                var trig= Impulse.kr(rate);

                SendReply.kr(trig, 'b', RedInfoBat.kr(trig));

        }).play(s);

        osc= OSCresponder(s.addr, 'b', {|t, resp, m|

                {

                        b.value= m[3];

                }.defer;

        }).add;

        CmdPeriod.doOnce({if(w.isClosed.not, {w.close})});

        w.onClose= {osc.remove; syn.free};

}

)