X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=tools%2Ftdm_test_client.c;h=fcedae5331a8baa681e8fe4678cfd355587cfc94;hb=ff032d7101ab3e3d05700c1acce4b8b691fe43fa;hp=ed88d8ae33976e4f1af3500801aa66c96c314111;hpb=97937cffcaa22abe11f852c69a76ab3f5b0ec9c8;p=platform%2Fcore%2Fuifw%2Flibtdm.git diff --git a/tools/tdm_test_client.c b/tools/tdm_test_client.c index ed88d8a..fcedae5 100644 --- a/tools/tdm_test_client.c +++ b/tools/tdm_test_client.c @@ -32,17 +32,18 @@ DEALINGS IN THE SOFTWARE. #include #include #include +#include #include #include static int -get_time_in_millis(void) +get_time_in_micros(void) { struct timespec tp; if (clock_gettime(CLOCK_MONOTONIC, &tp) == 0) - return (int)(tp.tv_sec * 1000) + (tp.tv_nsec / 1000000L); + return (int)(tp.tv_sec * 1000000) + (tp.tv_nsec / 1000L); return 0; } @@ -51,12 +52,19 @@ static void _client_vblank_handler(unsigned int sequence, unsigned int tv_sec, unsigned int tv_usec, void *user_data) { - int temp1, temp2; + int client, vblank; + static int prev = 0; - temp1 = (int)user_data; - temp2 = get_time_in_millis(); + client = get_time_in_micros(); + vblank = tv_sec * 1000000 + tv_usec; - printf("%d ms\n", temp2 - temp1); + if (vblank - prev > 16966 || vblank - prev < 16366) /* +0.3 ~ -0.3 ms */ + printf("vblank : %d us\n", vblank - prev); + + if (client - vblank > 2000) /* 2ms */ + printf("kernel -> tdm-client: %d us\n", client - vblank); + + prev = vblank; } @@ -87,9 +95,8 @@ main(int argc, char *argv[]) while (1) { int ret; - error = tdm_client_wait_vblank(client, "unknown-0", 1, 0, - _client_vblank_handler, - (void*)get_time_in_millis()); + error = tdm_client_wait_vblank(client, "unknown-0", 1, 1, 0, + _client_vblank_handler, NULL); if (error != TDM_CLIENT_ERROR_NONE) { printf("tdm_client_wait_vblank failed\n"); goto done;