Go to file
Frediano Ziglio 176970f3f1 red-channel-client: Remove GObject type
Make all RedChannelClient hierarchy a C++ class.
This allows to use virtual methods.
Added a normal contructor instead or properties and g_object_new.

As we remove GObject conversion macros I added a macro XXX_CAST
to create a function to replace the old macro.
They will be removed when more type safety is introduced.

There's a new SPICE_CXX_GLIB_ALLOCATOR macro in red-common.h.
This macro, added to a class define the class allocator allowing
to use, in this case, GLib for allocation. This to avoid C++ library
dependency and to initialize all structure to 0 (not all fields
are manually initialized, will be improved with more encapsulation).

Currently the methods are mainly public, access will be modified
when more encapsulation (all functions in method) are done.

Some classes are now defined in the header, C++ uses access to
limit accessibility but for efficiency and type safety/inline and
other features require types to be defined in the headers.

Some fields were moved from XxxPrivate structure to class, C++
has accessibility.

Many destructors are defined as protected to forbid the use of
stack, this as these objects uses internal reference counting
to have normal pointers. Maybe in the future pointers like
std::shared_ptr could be used instead.

Reference counting is now implemented very easily using atomic
operations.

Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
2020-05-01 06:58:09 +01:00
build-aux Do not generate ChangeLog file 2020-02-27 11:22:40 +00:00
docs docs: add Intel GVTg configuration to manual 2020-04-30 13:33:41 +03:00
m4 Remove conversion warnings 2020-05-01 06:58:08 +01:00
server red-channel-client: Remove GObject type 2020-05-01 06:58:09 +01:00
subprojects Update spice-common submodule 2020-04-29 18:54:01 +01:00
tests migrate.py: By default try to search system qemu executable 2020-03-09 12:28:45 +00:00
tools build: Update spice-common integration 2020-03-02 14:04:06 +00:00
uncrustify_cfg fresh start 2009-10-14 15:06:41 +02:00
.gitignore docs: update Makefile to match meson dist 2019-10-14 13:49:18 +01:00
.gitlab-ci.yml Allows C++ to be used in sources 2020-05-01 06:58:08 +01:00
.gitmodules build: Move spice-common to subprojects/ directory 2018-07-23 14:49:19 -03:00
.mailmap syntax-check: Fix missing AUTHORS 2016-12-05 13:48:28 +00:00
.travis.yml Remove Celt support 2020-03-17 17:15:51 +00:00
AUTHORS syntax-check: Add missing contributor name to AUTHORS 2020-04-29 20:48:39 +01:00
autogen.sh build-sys: Pass --enable-python-checks when running autogen.sh 2015-04-23 10:38:24 +02:00
cfg.mk Converting Spice_for_newbies.odt to AsciiDoctor format 2019-05-31 15:06:10 +01:00
CHANGELOG.md build: Prepare for 0.14.3 release 2020-02-27 11:22:44 +00:00
configure.ac Adjust some warnings 2020-05-01 06:58:08 +01:00
COPYING Relicense everything from GPL to LGPL 2.1+ 2010-04-13 22:22:15 +02:00
GNUmakefile syntax-check: Update gnufiles 2016-11-18 12:06:53 +00:00
maint.mk syntax-check: Update gnufiles 2016-11-18 12:06:53 +00:00
Makefile.am build: Make building the test binaries optional under Autoconf 2020-03-26 09:10:39 +00:00
meson_options.txt build: Make building the test binaries optional under Meson 2020-03-24 08:38:49 +00:00
meson.build Remove conversion warnings 2020-05-01 06:58:08 +01:00
README Update spice-protocol version 2019-04-26 11:45:12 +01:00
README.Windows.md Add some notes for the Windows port 2019-05-07 10:14:35 +01:00
spice-server.pc.in build: Change Autotools pkg-config name field to match Meson 2020-04-10 15:28:16 +01:00
TODO.multiclient Remove trailing whitespace from end of lines 2012-01-13 18:11:59 +02:00

   SPICE: Simple Protocol for Independent Computing Environments
   =============================================================

SPICE is a remote display system built for virtual environments which
allows you to view a computing 'desktop' environment not only on the
machine where it is running, but from anywhere on the Internet and
from a wide variety of machine architectures.

Installation
------------

The SPICE package uses GNU autotools, so the build install process
follows the standard process documented in the INSTALL file. As a
quick start you can do

  ./configure --prefix=/usr --sysconfdir=/etc \
        --localstatedir=/var --libdir=/usr/lib
  make
  sudo make install

Or to install into a private user specific location

  ./configure --prefix=$HOME/spice
  make
  make install

The following mandatory dependencies are required in order to
build SPICE

    Spice protocol >= 0.14.0
    Pixman         >= 0.17.7
    OpenSSL
    libjpeg
    zlib

The following optional dependencies increase the available
functionality

    Cyrus-SASL
    libcacard      >= 2.5.1             (Smartcard support)
    Opus           >= 1.0.0             (Opus audio encoding support)
    LZ4                                 (LZ4 compression support)
    GStreamer      >= 1.0.0

Communication
-------------

To communicate with the development team, or to post patches
there is a technical mailing list:

   http://lists.freedesktop.org/mailman/listinfo/spice-devel

There is also a mailing list for new release announcements:

   http://lists.freedesktop.org/archives/spice-announce/

To view known bugs, or report new bugs, in SPICE visit

   https://gitlab.freedesktop.org/spice/spice/issues/new?

Bugs found when using an OS distribution's binary packages should
be reported to the OS vendors' own bug tracker first.

The latest SPICE code can be found in GIT at:

   https://gitlab.freedesktop.org/spice/

Licensing
---------

SPICE is provided under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

Please see the COPYING file for the complete LGPLv2+ license
terms, or visit <http://www.gnu.org/licenses/>.

Experimental Features
---------------------
To enable multiple client connections, set:
SPICE_DEBUG_ALLOW_MC=1

-- End of readme