<commit_before>/*  This file is part of the KDE project
    Copyright (C) 2005-2007 <NAME> <<EMAIL>>

    This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Library General Public
    License version 2 as published by the Free Software Foundation.

    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.

*/
#ifndef Phonon_VIDEOWIDGET_H
#define Phonon_VIDEOWIDGET_H

#include <QWidget>
#include <kdelibs_export.h>
#include "../abstractvideooutput.h"

class QString;

namespace Phonon
{
class AbstractVideoOutput;
class OverlayApi;

	class VideoWidgetPrivate;
	/**
	 * \short Widget to display video.
	 *
	 * This widget shows the video signal and provides an object that can be
	 * plugged into the VideoPath.
	 *
	 * \code
	 * VideoWidget* vwidget = new VideoWidget( this );
	 * videoPath->addOutput( vwidget );
	 * \endcode
	 *
	 * \author <NAME> <<EMAIL>>
	 */
	class PHONONUI_EXPORT VideoWidget : public QWidget, public Phonon::AbstractVideoOutput
	{
        friend class OverlayApi;
		K_DECLARE_PRIVATE( VideoWidget )
		Q_OBJECT
        Q_ENUMS(AspectRatio ScaleMode)
		/**
		 * This property holds whether the video is shown using the complete
		 * screen.
		 *
		 * The property differs from QWidget::fullScreen in that it is
		 * writeable.
		 *
		 * By default the widget is not shown in fullScreen.
		 */
		Q_PROPERTY( bool fullScreen READ isFullScreen WRITE setFullScreen )
		/**
		 *
		 * Defaults to AspectRatioAuto.
		 *
		 * \see AspectRatio
		 */
		Q_PROPERTY( AspectRatio aspectRatio READ aspectRatio WRITE setAspectRatio )

        /**
         * If the size of the widget and the size of the video are not equal.
         * The video will be zoomed to fit the widget. The smaller zoom
         * (AddBarsScaleMode) adds black bars at the left/right or top/bottom to
         * make all of the image visible (default). The bigger zoom (ExpandMode)
         * fills the widget completely, keeping all information in one direction
         * and leaving parts of the image outside of the widget in the other
         * direction.
         */
        Q_PROPERTY(ScaleMode scaleMode READ scaleMode WRITE setScaleMode)

		public:
			/**
			 * Defines the width:height to be used for the video.
			 */
			enum AspectRatio
			{
                /**
                 * Let the decoder find the aspect ratio automatically from the
                 * media file (this is the default).
                 */
                AspectRatioAuto = 0,
				/**
				 * Fits the video into the widget making the aspect ratio depend
				 * solely on the size of the widget. This way the aspect ratio
				 * is freely resizeable by the user.
				 */
				AspectRatioWidget = 1,
				/**
				 * Make width/height == 4/3, which is the old TV size and
				 * monitor size (1024/768 == 4/3). (4:3)
				 */
				AspectRatio4_3 = 2,
                /**
                 * Make width/height == 16/9, which is the size of most current
                 * media. (16:9)
                 */
                AspectRatio16_9 = 3,
//X                 /**<commit_msg>--,<commit_after>/*  This file is part of the KDE project
    Copyright (C) 2005-2007 <NAME> <<EMAIL>>

    This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Library General Public
    License version 2 as published by the Free Software Foundation.

    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.

*/
#ifndef Phonon_VIDEOWIDGET_H
#define Phonon_VIDEOWIDGET_H

#include <QWidget>
#include <kdelibs_export.h>
#include "../abstractvideooutput.h"

class QString;

namespace Phonon
{
class AbstractVideoOutput;
class OverlayApi;

	class VideoWidgetPrivate;
	/**
	 * \short Widget to display video.
	 *
	 * This widget shows the video signal and provides an object that can be
	 * plugged into the VideoPath.
	 *
	 * \code
	 * VideoWidget* vwidget = new VideoWidget( this );
	 * videoPath->addOutput( vwidget );
	 * \endcode
	 *
	 * \author <NAME> <<EMAIL>>
	 */
	class PHONONUI_EXPORT VideoWidget : public QWidget, public Phonon::AbstractVideoOutput
	{
        friend class OverlayApi;
		K_DECLARE_PRIVATE( VideoWidget )
		Q_OBJECT
        Q_ENUMS(AspectRatio ScaleMode)
		/**
		 * This property holds whether the video is shown using the complete
		 * screen.
		 *
		 * The property differs from QWidget::fullScreen in that it is
		 * writeable.
		 *
		 * By default the widget is not shown in fullScreen.
		 */
		Q_PROPERTY( bool fullScreen READ isFullScreen WRITE setFullScreen )
		/**
		 *
		 * Defaults to AspectRatioAuto.
		 *
		 * \see AspectRatio
		 */
		Q_PROPERTY( AspectRatio aspectRatio READ aspectRatio WRITE setAspectRatio )

        /**
         * If the size of the widget and the size of the video are not equal.
         * The video will be zoomed to fit the widget. The smaller zoom
         * (AddBarsScaleMode) adds black bars at the left/right or top/bottom to
         * make all of the image visible (default). The bigger zoom (ExpandMode)
         * fills the widget completely, keeping all information in one direction
         * and leaving parts of the image outside of the widget in the other
         * direction.
         */
        Q_PROPERTY(ScaleMode scaleMode READ scaleMode WRITE setScaleMode)

		public:
			/**
			 * Defines the width:height to be used for the video.
			 */
			enum AspectRatio
			{
                /**
                 * Let the decoder find the aspect ratio automatically from the
                 * media file (this is the default).
                 */
                AspectRatioAuto = 0,
				/**
				 * Fits the video into the widget making the aspect ratio depend
				 * solely on the size of the widget. This way the aspect ratio
				 * is freely resizeable by the user.
				 */
				AspectRatioWidget = 1,
				/**
				 * Make width/height == 4/3, which is the old TV size and
				 * monitor size (1024/768 == 4/3). (4:3)
				 */
				AspectRatio4_3 = 2,
                /**
                 * Make width/height == 16/9, which is the size of most current
                 * media. (16:9)
                 */
                AspectRatio16_9 = 3
//X                 /**
{'fraction_non_alphanumeric': 0.0693446088794926, 'fraction_numerical': 0.013530655391120507, 'mean_word_length': 2.3678215472235404, 'pattern_counts': {'":': 0, '<': 19, '<?xml version=': 0, '>': 21, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '301593', 'n_tokens_mistral': 2151, 'n_tokens_neox': 1872, 'n_words': 826}