Yeah,

The synchronous APIs are not the nicest ones, I have to agree. However, we
should keep the behavior and emulate it. But put a big comment there why
we do such busy waiting.

And yes, the SysApps APIs will not be synchronous.

BR; Sakari

On 9/18/13 12:27 AM, "Kenneth Rohde Christiansen"
<kenneth.christian...@gmail.com> wrote:

>I kind of believe that we need to implement the API the way it is
>designed; even if that makes no sense at all. At least it would be
>good to propose a better Power/Idle API soon as it should be quite
>easy to implement.
>
>Kenneth
>
>On Tue, Sep 17, 2013 at 9:51 PM, Menard, Alexis <alexis.men...@intel.com>
>wrote:
>> Hi,
>>
>> I was fixing the remaining tests from the tct suite related to Power
>>API and I'm left with two failures which I'd like to discuss.
>>
>> Consider the Power API :
>> 
>>https://developer.tizen.org/help/topic/org.tizen.web.device.apireference/
>>tizen/power.html
>>
>> and these methods :
>>
>> void turnScreenOn ()
>> void turnScreenOff ()
>> setScreenBrightness()
>>
>> The two tests are failing because they're testing the API basically
>>that way :
>>
>> turnScreenOn()
>> assert_true(isScreenOn())
>>
>> Problem is that the underlaying C API we call (or even any other Power
>>management API I believe) is not a synchronous function call. It takes
>>few ms to change the brightness or to wake up/switch off the screen also
>>because you may need to change the power state and so on.
>>
>> I believe these TCT tests are covering the behaviour for the old WRT.
>>If we want to be compliant we need to behave the same and therefore
>>emulate the synchronous behaviour (btw I hope the SysApps API are better
>>because OMG these are terrible APIs).
>>
>> As we use the same C API as the ones in the old WRT I was curious on
>>how the people behind the old WRT solved it and here is the magic piece
>>of code :
>>
>> void PowerManager::setScreenState(bool onoff){
>> int ret = 0;
>> if( onoff )
>> ret = pm_change_state(LCD_NORMAL);
>>   else
>> ret = pm_change_state(LCD_OFF);
>> if( ret<0 ){
>> LoggerE("Platform error while changing screen state %d", ret);
>> throw UnknownException("Platform error while changing screen state");
>> }
>>
>> int timeout=100;
>> while(timeout--){
>>   if( isScreenOn() == onoff )
>> break;
>> usleep(100000);
>> }
>> }
>>
>> So should we emulate the sync behaviour? If so, I believe that we can
>>do better than the piece of code above (by blocking the return of the
>>fct while we wait the state change callback from the platform) -> better
>>suggestion?
>>
>> Software Engineer @
>> Intel Open Source Technology Center
>>
>> _______________________________________________
>> Crosswalk-dev mailing list
>> Crosswalk-dev@lists.crosswalk-project.org
>> https://lists.crosswalk-project.org/mailman/listinfo/crosswalk-dev
>
>
>
>-- 
>Kenneth Rohde Christiansen
>Senior Engineer, WebKit, Qt, EFL
>Phone  +45 4294 9458 / E-mail kenneth at webkit.org
>
>﹆﹆﹆
>_______________________________________________
>Crosswalk-dev mailing list
>Crosswalk-dev@lists.crosswalk-project.org
>https://lists.crosswalk-project.org/mailman/listinfo/crosswalk-dev

_______________________________________________
Crosswalk-dev mailing list
Crosswalk-dev@lists.crosswalk-project.org
https://lists.crosswalk-project.org/mailman/listinfo/crosswalk-dev

Reply via email to