~ubuntu-branches/ubuntu/saucy/ekiga/saucy

« back to all changes in this revision

Viewing changes to lib/engine/videooutput/skel/videooutput-info.h

  • Committer: Bazaar Package Importer
  • Author(s): Eugen Dedu, Eugen Dedu, Loic Minier
  • Date: 2008-09-27 10:00:00 UTC
  • mfrom: (5.1.4 upstream)
  • Revision ID: james.westby@ubuntu.com-20080927100000-l5k5werb6czr5b3h
Tags: 3.0.1-1
[ Eugen Dedu ]
* New version.  (Closes: #500089).
* Add our own changelog file in /usr/share/doc.
* Remove gnomemeeting transitional package.
* Discover new interfaces.  (Closes: #488199).
* Compile with dbus support.  (Closes: #467212).
* Numeric keypad inserts digits at correct position.  (Closes: #440159).
* Use libnotify upon call.  (Closes: #412604).
* Symlink identical GNOME help files, to reduce size.  (Closes: #505536).
* Explicitely build-depends on a few dev packages, even if they were
  pulled out anyway by the other dependencies.

[ Loic Minier ]
* Use clean:: instead of clean: in rules.
* Don't disable Uploaders: generation for control.in -> control generation
  in rules.
* Fix some tabs which were size 4 anyway.
* Generate a PO template during build by calling intltool-update -p in
  install; thanks Ubuntu and Martin Pitt; closes: #505535.
* Also let the -dbg depend on ${misc:Depends}.
* Cleanup rules; in particular, use dpkg-parsechangelog and honor
  distclean/clean failures, remove old clean rules, commented out stuff,
  gtk-only stuff.
* Pass -s to dh_* in binary-arch.
* Use debian/*.links and debian/*.manpages instead of symlink manually or
  passing files to dh_installman.
* Use ftp.gnome.org in copyright.
* Switch to quilt and fix target deps in the process; build-dep on quilt
  instead of dpatch; rename news.dpatch to 00_news.patch and refresh;
  replace 00list with series.
* Install autotools-dev config.guess and .sub after patching.

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-2007 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-info.h  -  description
 
29
 *                         ------------------------------------------
 
30
 *   begin                : written in 2007 by Matthias Schneider 
 
31
 *   copyright            : (c) 2007 by Matthias Schneider
 
32
 *   description          : Declaration of structs and classes used for communication
 
33
 *                          with the VideoOutputManagers
 
34
 *
 
35
 */
 
36
 
 
37
#ifndef __VIDEOOUTPUT_INFO_H__
 
38
#define __VIDEOOUTPUT_INFO_H__
 
39
 
 
40
#ifdef WIN32
 
41
#include <windows.h>
 
42
#else
 
43
#include <X11/Xlib.h>
 
44
#ifdef None
 
45
#undef None
 
46
#endif
 
47
#ifdef BadRequest
 
48
#undef BadRequest
 
49
#endif
 
50
#endif
 
51
 
 
52
namespace Ekiga {
 
53
 
 
54
/**
 
55
 * @addtogroup display
 
56
 * @{
 
57
 */
 
58
 
 
59
  /* Video modes */
 
60
  typedef enum {
 
61
  
 
62
    VO_MODE_LOCAL, 
 
63
    VO_MODE_REMOTE, 
 
64
    VO_MODE_PIP,
 
65
    VO_MODE_PIP_WINDOW,
 
66
    VO_MODE_FULLSCREEN,
 
67
    VO_MODE_UNSET
 
68
  } VideoOutputMode;
 
69
  
 
70
  /* Toggle operations for Fullscreen */
 
71
  typedef enum {
 
72
  
 
73
    VO_FS_ON,
 
74
    VO_FS_OFF,
 
75
    VO_FS_TOGGLE
 
76
  } VideoOutputFSToggle;
 
77
  
 
78
  /* Video Acceleration Status */
 
79
  typedef enum {
 
80
 
 
81
    VO_ACCEL_NONE,
 
82
    VO_ACCEL_REMOTE_ONLY,
 
83
    VO_ACCEL_ALL,
 
84
    VO_ACCEL_NO_VIDEO
 
85
  } VideoOutputAccel;
 
86
 
 
87
  enum VideoOutputErrorCodes {
 
88
    VO_ERROR_NONE = 0,
 
89
    VO_ERROR,
 
90
  };
 
91
 
 
92
 
 
93
  typedef struct {
 
94
    unsigned rx_fps;
 
95
    unsigned rx_width;
 
96
    unsigned rx_height;
 
97
    unsigned rx_frames;
 
98
    unsigned tx_fps;
 
99
    unsigned tx_width;
 
100
    unsigned tx_height;
 
101
    unsigned tx_frames;
 
102
  } VideoOutputStats;
 
103
 
 
104
  class DisplayInfo
 
105
  {
 
106
  public:
 
107
    DisplayInfo() {
 
108
      widget_info_set = false;
 
109
      x = 0;
 
110
      y = 0;
 
111
  #ifdef WIN32
 
112
      hwnd = 0;
 
113
  #else
 
114
      gc = 0;
 
115
      window = 0;
 
116
      xdisplay = NULL;
 
117
  #endif
 
118
  
 
119
      config_info_set = false;
 
120
      on_top = false;
 
121
      disable_hw_accel = false;
 
122
      allow_pip_sw_scaling = true;
 
123
      sw_scaling_algorithm = 0;
 
124
  
 
125
      mode = VO_MODE_UNSET;
 
126
      zoom = 0;
 
127
    };
 
128
    
 
129
    void operator= ( const DisplayInfo& rhs) {
 
130
  
 
131
    if (rhs.widget_info_set) {
 
132
        widget_info_set = rhs.widget_info_set;
 
133
        x = rhs.x;
 
134
        y = rhs.y;
 
135
  #ifdef WIN32
 
136
        hwnd = rhs.hwnd;
 
137
  #else
 
138
        gc = rhs.gc;
 
139
        window = rhs.window;
 
140
        xdisplay = rhs.xdisplay;
 
141
  #endif
 
142
      }
 
143
  
 
144
      if (rhs.config_info_set) {
 
145
        config_info_set = rhs.config_info_set;
 
146
        on_top = rhs.on_top;
 
147
        disable_hw_accel = rhs.disable_hw_accel;
 
148
        allow_pip_sw_scaling = rhs.allow_pip_sw_scaling;
 
149
        sw_scaling_algorithm =  rhs.sw_scaling_algorithm;
 
150
      }
 
151
      if (rhs.mode != VO_MODE_UNSET) mode = rhs.mode;
 
152
      if (rhs.zoom != 0) zoom = rhs.zoom;
 
153
    };
 
154
  
 
155
    bool widget_info_set;
 
156
    int x;
 
157
    int y;
 
158
              
 
159
  #ifdef WIN32
 
160
    HWND hwnd;
 
161
  #else
 
162
    GC gc;
 
163
    Window window;
 
164
    Display* xdisplay;
 
165
  #endif
 
166
  
 
167
    bool config_info_set;
 
168
    bool on_top;
 
169
    bool disable_hw_accel;
 
170
    bool allow_pip_sw_scaling;
 
171
    unsigned int sw_scaling_algorithm;
 
172
  
 
173
    VideoOutputMode mode;
 
174
    unsigned int zoom;
 
175
  };
 
176
 
 
177
/**
 
178
 * @}
 
179
 */
 
180
 
 
181
};
 
182
 
 
183
#endif