~ubuntu-branches/ubuntu/vivid/ekiga/vivid-proposed

« back to all changes in this revision

Viewing changes to lib/engine/videooutput/skel/videooutput-gmconf-bridge.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Kilian Krause
  • Date: 2011-07-17 00:24:50 UTC
  • mfrom: (5.1.5 upstream) (7.1.7 sid)
  • Revision ID: james.westby@ubuntu.com-20110717002450-ytg3wsrc1ptd3153
Tags: 3.3.1-1
* New upstream release.
 - Required libpt-dev 2.10 and libopal-dev 3.10
* Fix debian/watch to catch new version
* Remove libnotify0.7.patch - included upstream
* Add libboost-dev and libboost-signals-dev to Build-Depends
* debian/rules: Don't install *.la files for new internal shared libs
* Fix Vcs URIs to point to correct desktop/experimental/ekiga tree

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
 
2
 
/*
3
 
 * Ekiga -- A VoIP and Video-Conferencing application
4
 
 * Copyright (C) 2000-2008 Damien Sandras
5
 
 
6
 
 * This program is free software; you can  redistribute it and/or modify
7
 
 * it under the terms of the GNU General Public License as published by
8
 
 * the Free Software Foundation; either version 2 of the License, or (at
9
 
 * your option) any later version. This program is distributed in the hope
10
 
 * that it will be useful, but WITHOUT ANY WARRANTY; without even the
11
 
 * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12
 
 * See the GNU General Public License for more details.
13
 
 *
14
 
 * You should have received a copy of the GNU General Public License along
15
 
 * with this program; if not, write to the Free Software Foundation, Inc.,
16
 
 * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
17
 
 *
18
 
 * Ekiga is licensed under the GPL license and as a special exception, you
19
 
 * have permission to link or otherwise combine this program with the
20
 
 * programs OPAL, OpenH323 and PWLIB, and distribute the combination, without
21
 
 * applying the requirements of the GNU GPL to the OPAL, OpenH323 and PWLIB
22
 
 * programs, as long as you do follow the requirements of the GNU GPL for all
23
 
 * the rest of the software thus combined.
24
 
 */
25
 
 
26
 
 
27
 
/*
28
 
 *                         videooutput-gmconf-bridge.cpp -  description
29
 
 *                         ------------------------------------------
30
 
 *   begin                : written in 2008 by Matthias Schneider
31
 
 *   copyright            : (c) 2008 by Matthias Schneider
32
 
 *   description          : Declaration of the bridge between the gmconf 
33
 
 *                          and the videooutput-core.
34
 
 *
35
 
 */
36
 
 
37
 
#include "config.h"
38
 
 
39
 
#include "videooutput-gmconf-bridge.h"
40
 
#include "videooutput-core.h"
41
 
 
42
 
#define USER_INTERFACE_KEY "/apps/" PACKAGE_NAME "/general/user_interface/"
43
 
#define VIDEO_DISPLAY_KEY USER_INTERFACE_KEY "video_display/"
44
 
 
45
 
using namespace Ekiga;
46
 
 
47
 
VideoOutputCoreConfBridge::VideoOutputCoreConfBridge (Ekiga::Service & _service)
48
 
 : Ekiga::ConfBridge (_service)
49
 
{
50
 
  Ekiga::ConfKeys keys;
51
 
  property_changed.connect (sigc::mem_fun (this, &VideoOutputCoreConfBridge::on_property_changed));
52
 
 
53
 
  keys.push_back (VIDEO_DISPLAY_KEY "video_view"); 
54
 
  keys.push_back (VIDEO_DISPLAY_KEY "zoom"); 
55
 
  keys.push_back (VIDEO_DISPLAY_KEY "stay_on_top"); 
56
 
  keys.push_back (VIDEO_DISPLAY_KEY "disable_hw_accel"); 
57
 
  keys.push_back (VIDEO_DISPLAY_KEY "allow_pip_sw_scaling"); 
58
 
  keys.push_back (VIDEO_DISPLAY_KEY "sw_scaling_algorithm"); 
59
 
 
60
 
  load (keys);
61
 
}
62
 
 
63
 
void VideoOutputCoreConfBridge::on_property_changed (std::string key, GmConfEntry */*entry*/)
64
 
{
65
 
  VideoOutputCore & display_core = (VideoOutputCore &) service;
66
 
  if (key == VIDEO_DISPLAY_KEY "video_view")  {
67
 
 
68
 
    DisplayInfo display_info;
69
 
    PTRACE(4, "VideoOutputCoreConfBridge\tUpdating video view");
70
 
 
71
 
    if (( gm_conf_get_int (VIDEO_DISPLAY_KEY "video_view") < 0) || ( gm_conf_get_int (VIDEO_DISPLAY_KEY "video_view") > 4))
72
 
      gm_conf_set_int (VIDEO_DISPLAY_KEY "video_view", 0);
73
 
 
74
 
    display_info.mode = (VideoOutputMode) gm_conf_get_int (VIDEO_DISPLAY_KEY "video_view");
75
 
    display_core.set_display_info(display_info);
76
 
  }
77
 
  else if ( (key == VIDEO_DISPLAY_KEY "zoom") ) {
78
 
 
79
 
    DisplayInfo display_info;
80
 
    PTRACE(4, "VideoOutputCoreConfBridge\tUpdating zoom");
81
 
      
82
 
    display_info.zoom = gm_conf_get_int (VIDEO_DISPLAY_KEY "zoom");
83
 
    if ((display_info.zoom != 100) && (display_info.zoom != 50) && (display_info.zoom != 200)) {
84
 
      display_info.zoom = 100;
85
 
      gm_conf_set_int (VIDEO_DISPLAY_KEY "zoom", 100);
86
 
    }
87
 
 
88
 
    display_core.set_display_info(display_info);
89
 
 
90
 
  }
91
 
  else {
92
 
 
93
 
    PTRACE(4, "VideoOutputCoreConfBridge\tUpdating Video Settings");
94
 
    DisplayInfo display_info;
95
 
 
96
 
    display_info.on_top = gm_conf_get_bool (VIDEO_DISPLAY_KEY "stay_on_top");
97
 
    display_info.disable_hw_accel = gm_conf_get_bool (VIDEO_DISPLAY_KEY "disable_hw_accel");
98
 
    display_info.allow_pip_sw_scaling = gm_conf_get_bool (VIDEO_DISPLAY_KEY "allow_pip_sw_scaling");
99
 
    display_info.sw_scaling_algorithm = gm_conf_get_int (VIDEO_DISPLAY_KEY "sw_scaling_algorithm");
100
 
    if (display_info.sw_scaling_algorithm > 3) {
101
 
      display_info.sw_scaling_algorithm = 0;
102
 
      gm_conf_set_int (VIDEO_DISPLAY_KEY "sw_scaling_algorithm", 0);
103
 
    }
104
 
    display_info.config_info_set = TRUE;
105
 
 
106
 
    display_core.set_display_info(display_info);
107
 
  }
108
 
}
109