~ubuntu-branches/debian/jessie/italc/jessie

« back to all changes in this revision

Viewing changes to ica/x11/x11vnc/rates.c

  • Committer: Bazaar Package Importer
  • Author(s): Patrick Winnertz
  • Date: 2011-02-11 14:50:22 UTC
  • mto: This revision was merged to the branch mainline in revision 8.
  • Revision ID: james.westby@ubuntu.com-20110211145022-sn173siax6lywjus
Tags: upstream-1.0.13
ImportĀ upstreamĀ versionĀ 1.0.13

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
   Copyright (C) 2002-2010 Karl J. Runge <runge@karlrunge.com> 
 
3
   All rights reserved.
 
4
 
 
5
This file is part of x11vnc.
 
6
 
 
7
x11vnc is free software; you can redistribute it and/or modify
 
8
it under the terms of the GNU General Public License as published by
 
9
the Free Software Foundation; either version 2 of the License, or (at
 
10
your option) any later version.
 
11
 
 
12
x11vnc is distributed in the hope that it will be useful,
 
13
but WITHOUT ANY WARRANTY; without even the implied warranty of
 
14
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
15
GNU General Public License for more details.
 
16
 
 
17
You should have received a copy of the GNU General Public License
 
18
along with x11vnc; if not, write to the Free Software
 
19
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA
 
20
or see <http://www.gnu.org/licenses/>.
 
21
 
 
22
In addition, as a special exception, Karl J. Runge
 
23
gives permission to link the code of its release of x11vnc with the
 
24
OpenSSL project's "OpenSSL" library (or with modified versions of it
 
25
that use the same license as the "OpenSSL" library), and distribute
 
26
the linked executables.  You must obey the GNU General Public License
 
27
in all respects for all of the code used other than "OpenSSL".  If you
 
28
modify this file, you may extend this exception to your version of the
 
29
file, but you are not obligated to do so.  If you do not wish to do
 
30
so, delete this exception statement from your version.
 
31
*/
 
32
 
1
33
/* -- rates.c -- */
2
34
 
3
35
#include "x11vnc.h"
377
409
                }
378
410
                rbs = cl->rawBytesEquivalent;
379
411
#else
 
412
#if LIBVNCSERVER_HAS_STATS
380
413
                cbs = rfbStatGetSentBytes(cl);
381
414
                rbs = rfbStatGetSentBytesIfRaw(cl);
382
415
#endif
 
416
#endif
383
417
 
384
418
                if (init) {
385
419
 
421
455
                if (OUCH && ouch_db) fprintf(stderr, "***OUCH-A\n");
422
456
                if (OUCH) continue;
423
457
 
 
458
                if (use_threads) LOCK(cl->updateMutex);
 
459
 
424
460
                if (sraRgnCountRects(cl->modifiedRegion)) {
425
461
                        rfbPE(1000);
426
462
                        if (OUCH && ouch_db) fprintf(stderr, "***OUCH-B\n");
 
463
                        if (use_threads) UNLOCK(cl->updateMutex);
427
464
                        if (OUCH) continue;
428
465
                }
429
466
 
 
467
                if (use_threads) UNLOCK(cl->updateMutex);
 
468
 
430
469
                defer = screen->deferUpdateTime;
431
470
                httpdir = screen->httpDir;
432
471
                screen->deferUpdateTime = 0;
452
491
                        if (OUCH && ouch_db) fprintf(stderr, "***OUCH-C1\n");
453
492
                        if (OUCH) break;
454
493
 
 
494
                        if (use_threads) LOCK(cl->updateMutex);
 
495
 
455
496
                        req0 = sraRgnCountRects(cl->requestedRegion);
456
497
                        mod0 = sraRgnCountRects(cl->modifiedRegion);
 
498
 
 
499
                        if (use_threads) UNLOCK(cl->updateMutex);
 
500
 
457
501
                        if (use_threads) {
458
502
                                usleep(1000);
459
503
                        } else {
472
516
                        if (OUCH && ouch_db) fprintf(stderr, "***OUCH-C2\n");
473
517
                        if (OUCH) break;
474
518
 
 
519
                        if (use_threads) LOCK(cl->updateMutex);
 
520
 
475
521
                        req1 = sraRgnCountRects(cl->requestedRegion);
476
522
                        mod1 = sraRgnCountRects(cl->modifiedRegion);
477
523
 
 
524
                        if (use_threads) UNLOCK(cl->updateMutex);
 
525
 
478
526
if (db) fprintf(stderr, "dt2 calc: num rects req: %d/%d mod: %d/%d  "
479
527
    "fbu-sent: %d  dt: %.4f dt2: %.4f  tm: %.4f\n",
480
528
    req0, req1, mod0, mod1,
481
529
#if 0
482
530
    cl->framebufferUpdateMessagesSent,
483
531
#else
 
532
#if LIBVNCSERVER_HAS_STATS
484
533
    rfbStatGetMessageCountSent(cl, rfbFramebufferUpdate),
485
534
#endif
 
535
#endif
486
536
    dt, dt2, tm);
487
537
                        if (req1 != 0 && mod1 == 0) {
488
538
                                got_t2 = 1;
522
572
                                while (1) {
523
573
                                        int req0, req1, mod0, mod1;
524
574
 
525
 
                                        req0 = sraRgnCountRects(
526
 
                                            cl->requestedRegion);
527
 
                                        mod0 = sraRgnCountRects(
528
 
                                            cl->modifiedRegion);
 
575
                                        if (use_threads) LOCK(cl->updateMutex);
 
576
 
 
577
                                        req0 = sraRgnCountRects(cl->requestedRegion);
 
578
                                        mod0 = sraRgnCountRects(cl->modifiedRegion);
 
579
 
 
580
                                        if (use_threads) UNLOCK(cl->updateMutex);
529
581
 
530
582
                                        if (i == 0) {
531
583
                                                rfbPE(0);
546
598
                                        if (dt3 > spin_lat_max) {
547
599
                                                break;
548
600
                                        }
549
 
                                        req1 = sraRgnCountRects(
550
 
                                            cl->requestedRegion);
551
 
 
552
 
                                        mod1 = sraRgnCountRects(
553
 
                                            cl->modifiedRegion);
 
601
 
 
602
                                        if (use_threads) LOCK(cl->updateMutex);
 
603
 
 
604
                                        req1 = sraRgnCountRects(cl->requestedRegion);
 
605
                                        mod1 = sraRgnCountRects(cl->modifiedRegion);
 
606
 
 
607
                                        if (use_threads) UNLOCK(cl->updateMutex);
554
608
 
555
609
if (db) fprintf(stderr, "dt3 calc: num rects req: %d/%d mod: %d/%d  "
556
610
    "fbu-sent: %d  dt: %.4f dt3: %.4f  tm: %.4f\n",
558
612
#if 0
559
613
    cl->framebufferUpdateMessagesSent,
560
614
#else
 
615
#if LIBVNCSERVER_HAS_STATS
561
616
    rfbStatGetMessageCountSent(cl, rfbFramebufferUpdate),
562
617
#endif
 
618
#endif
563
619
    dt, dt3, tm);
564
620
 
565
621
                                        if (req1 != 0 && mod1 == 0) {