blob: 5cc57003a42c137dc66635b8d540dfa91b6bc06b [file] [log] [blame]
Peter Åstrand (astrand)11736372018-03-07 09:29:00 +01001/* Copyright (C) 2002-2005 RealVNC Ltd. All Rights Reserved.
2 * Copyright 2011-2015 Pierre Ossman for Cendio AB
3 *
4 * This is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This software is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this software; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
17 * USA.
18 */
19
20/*
21 This header defines an interface for X RandR operations. It is
22 implemented by a corresponding RandrGlue.c, either with internal
23 calls (for Xvnc/vncmodule.so) or Xlib calls (x0vncserver).
24 */
25
26#ifndef RANDR_GLUE_H
27#define RANDR_GLUE_H
28
29#ifdef __cplusplus
30extern "C" {
31#endif
32
Peter Åstrand (astrand)ffeda072018-04-02 22:15:47 +020033int vncGetScreenWidth(void);
34int vncGetScreenHeight(void);
Peter Åstrand (astrand)11736372018-03-07 09:29:00 +010035
Peter Åstrand (astrand)54f49fd2018-03-27 09:14:38 +020036int vncRandRIsValidScreenSize(int width, int height);
Peter Åstrand (astrand)ffeda072018-04-02 22:15:47 +020037int vncRandRResizeScreen(int width, int height);
38void vncRandRUpdateSetTime(void);
Peter Åstrand (astrand)11736372018-03-07 09:29:00 +010039
Peter Åstrand (astrand)ffeda072018-04-02 22:15:47 +020040int vncRandRHasOutputClones(void);
Peter Åstrand (astrand)11736372018-03-07 09:29:00 +010041
Peter Åstrand (astrand)ffeda072018-04-02 22:15:47 +020042int vncRandRGetOutputCount(void);
43int vncRandRGetAvailableOutputs(void);
Peter Åstrand (astrand)11736372018-03-07 09:29:00 +010044
Peter Åstrand (astrand)ffeda072018-04-02 22:15:47 +020045char *vncRandRGetOutputName(int outputIdx);
Peter Åstrand (astrand)11736372018-03-07 09:29:00 +010046
Peter Åstrand (astrand)ffeda072018-04-02 22:15:47 +020047int vncRandRIsOutputEnabled(int outputIdx);
48int vncRandRIsOutputUsable(int outputIdx);
Peter Åstrand (astrand)a61c6f22018-03-20 08:15:41 +010049int vncRandRIsOutputConnected(int outputIdx);
Peter Åstrand (astrand)11736372018-03-07 09:29:00 +010050
Peter Åstrand (astrand)54f49fd2018-03-27 09:14:38 +020051int vncRandRCheckOutputMode(int outputIdx, int width, int height);
52
Peter Åstrand (astrand)ffeda072018-04-02 22:15:47 +020053int vncRandRDisableOutput(int outputIdx);
54int vncRandRReconfigureOutput(int outputIdx, int x, int y,
Peter Åstrand (astrand)11736372018-03-07 09:29:00 +010055 int width, int height);
56
Peter Åstrand (astrand)ffeda072018-04-02 22:15:47 +020057unsigned int vncRandRGetOutputId(int outputIdx);
Peter Åstrand (astrand)d57acc32018-03-19 10:47:40 +010058int vncRandRGetOutputDimensions(int outputIdx,
Peter Åstrand (astrand)11736372018-03-07 09:29:00 +010059 int *x, int *y, int *width, int *height);
60
Peter Åstrand (astrand)54f49fd2018-03-27 09:14:38 +020061int vncRandRCanCreateOutputs(int extraOutputs);
Peter Åstrand (astrand)ffeda072018-04-02 22:15:47 +020062int vncRandRCreateOutputs(int extraOutputs);
Peter Åstrand (astrand)11736372018-03-07 09:29:00 +010063
64#ifdef __cplusplus
65}
66#endif
67
68#endif