You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdelibs/krandr/libkrandr.h

210 lines
6.3 KiB

/* libkrandr.h - class KRandr that makes it easy to use XRandr in KDE
This file is part of KRandr 0.9.5
Copyright (C) 2010 Timothy Pearson
LibKMid's homepage : http://trinity.pearsoncomputing.net
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
Send comments and bug fixes to Timothy Pearson <kb9vqf@pearsoncomputing.net>
***************************************************************************/
#ifndef _LIBKRANDR_H
#define _LIBKRANDR_H
#include "randr.h"
#include "lowlevel_randr.h"
#ifdef __cplusplus
#include <kconfig.h>
#include <ksimpleconfig.h>
#include <kdelibs_export.h>
/**
* Simple API covering most of the uses of libkrandr.
*
* You can use the members of this class in pure C applications, just by using
* the same name as the corresponding function member.
*
* @short A simple API around the rest of libkrandr.
* @version 0.9.5 27/04/2010
* @author Timothy Pearson <kb9vqf@pearsoncomputing.net>
*/
class KRANDR_EXPORT KRandrSimpleAPI : public RandRDisplay
{
private:
public:
/**
* Retrieves the specificed ICC profile filename from the configuration database
*/
QString getIccFileName(QString profileName, QString screenName, QString kde_confdir);
/**
* Applies the specificed ICC profile filename to the specified RandR output
* If RandR is not available, the specified file is applied to the current display
*/
QString applyIccFile(QString screenName, QString fileName);
/**
* Applies all saved ICC profile settings to all RandR outputs
* If RandR is not available, the settings are applied to the current display
*/
QString applyIccConfiguration(QString profileName, QString kde_confdir);
/**
* Applies saved system wide settings to the current display
*/
QString applySystemWideIccConfiguration(QString kde_confdir);
/**
* Resets the current display
*/
QString clearIccConfiguration(void);
/**
* Retrieves current profile name
*/
QString getCurrentProfile(void);
/**
* Reads current screen information.
*/
ScreenInfo* read_screen_info(Display *display);
/**
* Sets the screen size.
*/
int set_screen_size (ScreenInfo *screen_info);
/**
* Automatically selects an output port.
*/
void output_auto (ScreenInfo *screen_info, OutputInfo *output_info);
/**
* Turns off a specified output on a specified screen.
*/
void output_off(ScreenInfo *screen_info, OutputInfo *output);
/**
* Automatically finds the CRTC structure.
*/
CrtcInfo* auto_find_crtc (ScreenInfo *screen_info, OutputInfo *output_info);
/**
* Finds a mode by XID.
*/
XRRModeInfo *find_mode_by_xid (ScreenInfo *screen_info, RRMode mode_id);
/**
* Returns specified mode height in pixels.
*/
int mode_height (XRRModeInfo *mode_info, Rotation rotation);
/**
* Returns specified mode width in pixels.
*/
int mode_width (XRRModeInfo *mode_info, Rotation rotation);
/**
* Returns specified output width in pixels.
*/
int get_width_by_output_id (ScreenInfo *screen_info, RROutput output_id);
/**
* Returns specified output height in pixels.
*/
int get_height_by_output_id (ScreenInfo *screen_info, RROutput output_id);
/**
* Returns output name.
*/
char *get_output_name (ScreenInfo *screen_info, RROutput id);
/**
* Applies specified CRTC.
*/
Status crtc_apply (CrtcInfo *crtc_info);
/**
* Disables specificed CRTC
*/
Status crtc_disable (CrtcInfo *crtc);
/**
* Applies all previously configured settings to the specified screen.
*/
int main_low_apply (ScreenInfo *screen_info);
/**
* Returns whether or not the system supports XRandR
*/
bool kRandrHasRandr();
/**
* Returns the version number of libkrandr, i.e. "0.9.5" or "1.0 Beta"
*/
static const char *kRandrVersion(void);
/**
* Returns the copyright notice that applications using libkrandr should print
* to the user in an about box or somewhere visible.
* I.e.
*
* "LibKRandr 0.9.5 (C) 2010 Timothy Pearson <kb9vqf@pearsoncomputing.net>. U.S.A."
*/
static const char *kRandrCopyright(void);
};
extern "C" {
#else
#define KRANDR_EXPORT
#endif
// KRANDR_EXPORT ScreenInfo* read_screen_info(Display *);
// KRANDR_EXPORT int set_screen_size (ScreenInfo *screen_info);
// KRANDR_EXPORT void output_auto (ScreenInfo *screen_info, OutputInfo *output_info);
// KRANDR_EXPORT void output_off(ScreenInfo *screen_info, OutputInfo *output);
// KRANDR_EXPORT CrtcInfo* auto_find_crtc (ScreenInfo *screen_info, OutputInfo *output_info);
// KRANDR_EXPORT XRRModeInfo *find_mode_by_xid (ScreenInfo *screen_info, RRMode mode_id);
// KRANDR_EXPORT int mode_height (XRRModeInfo *mode_info, Rotation rotation);
// KRANDR_EXPORT int mode_width (XRRModeInfo *mode_info, Rotation rotation);
// KRANDR_EXPORT int get_width_by_output_id (ScreenInfo *screen_info, RROutput output_id);
// KRANDR_EXPORT int get_height_by_output_id (ScreenInfo *screen_info, RROutput output_id);
// KRANDR_EXPORT char *get_output_name (ScreenInfo *screen_info, RROutput id);
// KRANDR_EXPORT Status crtc_apply (CrtcInfo *crtc_info);
// KRANDR_EXPORT Status crtc_disable (CrtcInfo *crtc);
// KRANDR_EXPORT int main_low_apply (ScreenInfo *screen_info);
// KRANDR_EXPORT bool kRandrHasRandr();
KRANDR_EXPORT const char *kRandrVersion(void);
KRANDR_EXPORT const char *kRandrCopyright(void);
#ifdef __cplusplus
}
#endif
#endif