aboutsummaryrefslogtreecommitdiff
path: root/desktop-utilities/lumina-terminal/TtyProcess.h
diff options
context:
space:
mode:
authorKen Moore <moorekou@gmail.com>2016-04-25 13:08:12 -0400
committerKen Moore <moorekou@gmail.com>2016-04-25 13:08:12 -0400
commited5ecf7ea7a482b4649e66ecb35fbc60af680684 (patch)
treeacc0fa17d228259e847f55c678db9fb0a9b50f0c /desktop-utilities/lumina-terminal/TtyProcess.h
parentMerge branch 'master' of github.com:pcbsd/lumina (diff)
downloadlumina-ed5ecf7ea7a482b4649e66ecb35fbc60af680684.tar.gz
lumina-ed5ecf7ea7a482b4649e66ecb35fbc60af680684.tar.bz2
lumina-ed5ecf7ea7a482b4649e66ecb35fbc60af680684.zip
Rearrange the Lumina source tree quite a bit:
Now the utilites are arranged by category (core, core-utils, desktop-utils), so all the -utils may be excluded by a package system (or turned into separate packages) as needed.
Diffstat (limited to 'desktop-utilities/lumina-terminal/TtyProcess.h')
-rw-r--r--desktop-utilities/lumina-terminal/TtyProcess.h83
1 files changed, 0 insertions, 83 deletions
diff --git a/desktop-utilities/lumina-terminal/TtyProcess.h b/desktop-utilities/lumina-terminal/TtyProcess.h
deleted file mode 100644
index 9b3873b0..00000000
--- a/desktop-utilities/lumina-terminal/TtyProcess.h
+++ /dev/null
@@ -1,83 +0,0 @@
-//===========================================
-// Lumina-DE source code
-// Copyright (c) 2015, Ken Moore
-// Available under the 3-clause BSD license
-// See the LICENSE file for full details
-//===========================================
-// This is basically a replacement for QProcess, where all process/terminal outputs
-// are redirected and not just the standard input/output channels. This allows it
-// to be used for terminal-like apps (shells) which directly modify the terminal output
-// rather than stick to input/output channels for communication.
-//===========================================
-// IMPLEMENTATION NOTE
-//======================
-// The process requires/uses ANSI control codes (\x1B[<something>) for special operations
-// such as moving the cursor, erasing characters, etc..
-// It is recommended that you pair this class with the graphical "TerminalWidget.h" class
-// or some other ANSI-compatible display widget.
-//===========================================
-#ifndef _LUMINA_DESKTOP_UTILITIES_TERMINAL_TTY_PROCESS_WIDGET_H
-#define _LUMINA_DESKTOP_UTILITIES_TERMINAL_TTY_PROCESS_WIDGET_H
-
-#include <QDebug>
-#include <QSocketNotifier>
-#include <QKeyEvent>
-
-//Standard C library functions for PTY access/setup
-#include <stdlib.h>
-#include <fcntl.h>
-#include <termios.h>
-#include <unistd.h>
-#include <sys/ioctl.h>
-#include <sys/types.h>
-#include <sys/wait.h>
-#include <signal.h>
-
-class TTYProcess : public QObject{
- Q_OBJECT
-public:
- TTYProcess(QObject *parent = 0);
- ~TTYProcess();
-
- bool startTTY(QString prog, QStringList args = QStringList(), QString workdir = "~");
- void closeTTY();
-
- //Primary read/write functions
- void writeTTY(QByteArray output);
- QByteArray readTTY();
-
- //Setup the terminal size (characters and pixels)
- void setTerminalSize(QSize chars, QSize pixels);
-
- //Status update checks
- bool isOpen();
-
- //Functions for handling ANSI escape codes (typically not used by hand)
- QByteArray CleanANSI(QByteArray, bool &incomplete);
-
-private:
- pid_t childProc;
- int ttyfd;
- QSocketNotifier *sn;
- QByteArray fragBA; //fragment ByteArray
-
- //====================================
- // C Library function for setting up the PTY
- // Inputs:
- // int &fd: (output) file descriptor for the master PTY (positive integer if valid)
- // char *prog: program to run
- // char **args: program arguments
- // Returns:
- // -1 for errors, child process PID (positive integer) if successful
- //====================================
- static pid_t LaunchProcess(int& fd, char *prog, char **child_args);
-
-private slots:
- void checkStatus(int);
-
-signals:
- void readyRead();
- void processClosed();
-};
-
-#endif
bgstack15