Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- From 4c3b3d92f68b822e88b4a40491f973c9a855f943 Mon Sep 17 00:00:00 2001
- From: Gerasim Troeglazov <3dEyes@gmail.com>
- Date: Wed, 7 Jun 2017 00:54:42 +0100
- Subject: Add Haiku support
- diff --git a/haiku/QMPlay2.rdef b/haiku/QMPlay2.rdef
- new file mode 100644
- index 0000000..2702ac8
- --- /dev/null
- +++ b/haiku/QMPlay2.rdef
- @@ -0,0 +1,42 @@
- +resource app_signature "application/x-vnd.QMPlay2";
- +resource app_flags B_MULTIPLE_LAUNCH;
- +resource app_version {
- + major = 15,
- + middle = 10,
- + minor = 03,
- +
- + /* Application "variety" can be set to one of the following:
- + * B_APPV_DEVELOPMENT,
- + * B_APPV_ALPHA,
- + * B_APPV_BETA,
- + * B_APPV_GAMMA,
- + * B_APPV_GOLDEN_MASTER,
- + * B_APPV_FINAL
- + */
- + variety = B_APPV_DEVELOPMENT,
- + internal = 0,
- +
- + short_info = "QMPlay2",
- + long_info = "QMPlay2 © 2010-2015 Błażej Szczygieł"
- +};
- +
- +resource file_types message {
- + "types" = "video",
- + "types" = "audio"
- +};
- +
- +resource vector_icon array {
- + $"6E63696602012C165AF20314D77803000DB4D0B47BB4D0B47BB5A4B493B717B5"
- + $"6DB659B515BCBFB846C814BDF0C26CBB17C8CEBE53CA3FBF23C99BBE9CCA9ABF"
- + $"6BCA35C053CA92C00FC985C0E0C7E7C196C8ADC12DC276C452B78EC9BFBD01C7"
- + $"06B6C1CA20B523CAD9B601CAA4B4ACCAF9B426CA1EB421CA9DB41FC965B46DC7"
- + $"FBB44EC8B0B561C2E0B4A9B879B57FBD9BB485B770B428B55FB438B66BB41CB4"
- + $"F6B4D0B47BB466B48CB4D0B47B0209B627B6EDB6A3B714B640B838B6A7BACAB6"
- + $"89B97FB6F3BD1FB6E1C1D3B6F0BF7BB6D1C408B623C864B659C633B71AC816B8"
- + $"DBC716B7F4C787BC65C561C369C1D7BFF0C3ADC4D7C11DC7BDBFBFC64EC075C7"
- + $"1DBF3FC5A7BE96C65EBEEFC0EEBC47B790B783BC40B9E3B71CB7480209B627B6"
- + $"EDB640B838B6A3B714B790B783B71CB748BC40B9E3C5A7BE96C0EEBC47C65EBE"
- + $"EFC7BDBFBFC71DBF3FC64EC075C369C1D7C4D7C11DBFF0C3ADB8DBC716BC65C5"
- + $"61B7F4C787B623C864B71AC816B659C633B6E1C1D3B6D1C408B6F0BF7BB6A7BA"
- + $"CAB6F3BD1FB689B97F020A00020001000A01010200"
- +};
- diff --git a/src/gui/gui.pro b/src/gui/gui.pro
- index 7abeac2..c350ca2 100644
- --- a/src/gui/gui.pro
- +++ b/src/gui/gui.pro
- @@ -10,8 +10,14 @@ android {
- TARGET = QMPlay2
- -QMAKE_LIBDIR += ../../app/lib
- -DESTDIR = ../../app/bin
- +haiku {
- + DESTDIR = ../../app
- + QMAKE_LIBDIR += ../../app/lib
- +}
- + else {
- + QMAKE_LIBDIR += ../../app/lib
- + DESTDIR = ../../app/bin
- +}
- !android: LIBS += -lrt #For glibc < 2.17
- LIBS += -lqmplay2
- diff --git a/src/modules/AudioCD/AudioCD.pro b/src/modules/AudioCD/AudioCD.pro
- index 0a02c90..100db72 100644
- --- a/src/modules/AudioCD/AudioCD.pro
- +++ b/src/modules/AudioCD/AudioCD.pro
- @@ -3,8 +3,14 @@ CONFIG += plugin
- QT += widgets
- -DESTDIR = ../../../app/lib/qmplay2/modules
- -QMAKE_LIBDIR += ../../../app/lib
- +haiku {
- + DESTDIR = ../../../app/modules
- + QMAKE_LIBDIR += ../../../app/lib
- +}
- + else {
- + DESTDIR = ../../../app/lib/qmplay2/modules
- + QMAKE_LIBDIR += ../../../app/lib
- +}
- CONFIG += link_pkgconfig
- PKGCONFIG += libcdio libcddb
- diff --git a/src/modules/AudioFilters/AudioFilters.pro b/src/modules/AudioFilters/AudioFilters.pro
- index 85f71a5..75e4ab3 100644
- --- a/src/modules/AudioFilters/AudioFilters.pro
- +++ b/src/modules/AudioFilters/AudioFilters.pro
- @@ -3,9 +3,15 @@ CONFIG += plugin
- QT += widgets
- -DESTDIR = ../../../app/lib/qmplay2/modules
- -QMAKE_LIBDIR += ../../../app/lib
- -
- +haiku {
- + DESTDIR = ../../../app/modules
- + QMAKE_LIBDIR += ../../../app/lib
- +}
- + else {
- + DESTDIR = ../../../app/lib/qmplay2/modules
- + QMAKE_LIBDIR += ../../../app/lib
- +}
- +
- android: LIBS += -lavcodec -lavutil
- else {
- CONFIG += link_pkgconfig
- diff --git a/src/modules/Extensions/Extensions.pro b/src/modules/Extensions/Extensions.pro
- index 930f141..f4854f8 100644
- --- a/src/modules/Extensions/Extensions.pro
- +++ b/src/modules/Extensions/Extensions.pro
- @@ -3,8 +3,14 @@ CONFIG += plugin
- QT += widgets
- -DESTDIR = ../../../app/lib/qmplay2/modules
- -QMAKE_LIBDIR += ../../../app/lib
- +haiku {
- + DESTDIR = ../../../app/modules
- + QMAKE_LIBDIR += ../../../app/lib
- +}
- + else {
- + DESTDIR = ../../../app/lib/qmplay2/modules
- + QMAKE_LIBDIR += ../../../app/lib
- +}
- LIBS += -lqmplay2
- diff --git a/src/modules/FFmpeg/FFmpeg.pro b/src/modules/FFmpeg/FFmpeg.pro
- index 7939af0..2bbd1da 100644
- --- a/src/modules/FFmpeg/FFmpeg.pro
- +++ b/src/modules/FFmpeg/FFmpeg.pro
- @@ -3,8 +3,14 @@ CONFIG += plugin
- QT += widgets
- -DESTDIR = ../../../app/lib/qmplay2/modules
- -QMAKE_LIBDIR += ../../../app/lib
- +haiku {
- + DESTDIR = ../../../app/modules
- + QMAKE_LIBDIR += ../../../app/lib
- +}
- + else {
- + DESTDIR = ../../../app/lib/qmplay2/modules
- + QMAKE_LIBDIR += ../../../app/lib
- +}
- android: LIBS += -lavformat -lavcodec -lswscale -lavutil
- else {
- @@ -27,7 +33,7 @@ DEPENDPATH += . ../../qmplay2/headers
- HEADERS += FFmpeg.hpp FFDemux.hpp FFDec.hpp FFDecSW.hpp FFReader.hpp FFCommon.hpp FormatContext.hpp OggHelper.hpp OpenThr.hpp
- SOURCES += FFmpeg.cpp FFDemux.cpp FFDec.cpp FFDecSW.cpp FFReader.cpp FFCommon.cpp FormatContext.cpp OggHelper.cpp OpenThr.cpp
- -unix:!android {
- +unix:!android:!haiku {
- PKGCONFIG += libavdevice
- DEFINES += QMPlay2_libavdevice
- diff --git a/src/modules/Inputs/Inputs.pro b/src/modules/Inputs/Inputs.pro
- index 387d1bc..fba4df2 100644
- --- a/src/modules/Inputs/Inputs.pro
- +++ b/src/modules/Inputs/Inputs.pro
- @@ -3,8 +3,14 @@ CONFIG += plugin
- QT += widgets
- -DESTDIR = ../../../app/lib/qmplay2/modules
- -QMAKE_LIBDIR += ../../../app/lib
- +haiku {
- + DESTDIR = ../../../app/modules
- + QMAKE_LIBDIR += ../../../app/lib
- +}
- + else {
- + DESTDIR = ../../../app/lib/qmplay2/modules
- + QMAKE_LIBDIR += ../../../app/lib
- +}
- LIBS += -lqmplay2
- diff --git a/src/modules/MediaKit/MediaKit.cpp b/src/modules/MediaKit/MediaKit.cpp
- new file mode 100644
- index 0000000..1647325
- --- /dev/null
- +++ b/src/modules/MediaKit/MediaKit.cpp
- @@ -0,0 +1,65 @@
- +#include <MediaKit.hpp>
- +#include <MediaKitWriter.hpp>
- +
- +MediaKit::MediaKit() :
- + Module( "MediaKit" )
- +{
- + moduleImg = QImage( ":/MediaKit" );
- +
- + init( "WriterEnabled", true );
- + init( "Delay", 0.2 );
- +}
- +
- +QList< MediaKit::Info > MediaKit::getModulesInfo( const bool showDisabled ) const
- +{
- + QList< Info > modulesInfo;
- + if ( showDisabled || getBool( "WriterEnabled" ) )
- + modulesInfo += Info( MediaKitWriterName, WRITER, QStringList( "audio" ) );
- + return modulesInfo;
- +}
- +void *MediaKit::createInstance( const QString &name )
- +{
- + if ( name == MediaKitWriterName && getBool( "WriterEnabled" ) )
- + return new MediaKitWriter( *this );
- + return NULL;
- +}
- +
- +MediaKit::SettingsWidget *MediaKit::getSettingsWidget()
- +{
- + return new ModuleSettingsWidget( *this );
- +}
- +
- +QMPLAY2_EXPORT_PLUGIN( MediaKit )
- +
- +/**/
- +
- +#include <QDoubleSpinBox>
- +#include <QGridLayout>
- +#include <QCheckBox>
- +#include <QLabel>
- +
- +ModuleSettingsWidget::ModuleSettingsWidget( Module &module ) :
- + Module::SettingsWidget( module )
- +{
- + enabledB = new QCheckBox( tr( "Włączony" ) );
- + enabledB->setChecked( sets().getBool( "WriterEnabled" ) );
- +
- + QLabel *delayL = new QLabel( tr( "Opóźnienie" ) + ": " );
- +
- + delayB = new QDoubleSpinBox;
- + delayB->setRange( 0.01, 1.0 );
- + delayB->setSingleStep( 0.01 );
- + delayB->setSuffix( " " + tr( "sek" ) );
- + delayB->setValue( sets().getDouble( "Delay" ) );
- +
- + QGridLayout *layout = new QGridLayout( this );
- + layout->addWidget( enabledB, 0, 0, 1, 2 );
- + layout->addWidget( delayL, 1, 0, 1, 1 );
- + layout->addWidget( delayB, 1, 1, 1, 1 );
- +}
- +
- +void ModuleSettingsWidget::saveSettings()
- +{
- + sets().set( "WriterEnabled", enabledB->isChecked() );
- + sets().set( "Delay", delayB->value() );
- +}
- diff --git a/src/modules/MediaKit/MediaKit.hpp b/src/modules/MediaKit/MediaKit.hpp
- new file mode 100644
- index 0000000..16920f6
- --- /dev/null
- +++ b/src/modules/MediaKit/MediaKit.hpp
- @@ -0,0 +1,31 @@
- +#include <Module.hpp>
- +
- +class MediaKit : public Module
- +{
- +public:
- + MediaKit();
- +private:
- + QList< Info > getModulesInfo( const bool ) const;
- + void *createInstance( const QString & );
- +
- + SettingsWidget *getSettingsWidget();
- +};
- +
- +/**/
- +
- +#include <QCoreApplication>
- +
- +class QDoubleSpinBox;
- +class QCheckBox;
- +
- +class ModuleSettingsWidget : public Module::SettingsWidget
- +{
- + Q_DECLARE_TR_FUNCTIONS( ModuleSettingsWidget )
- +public:
- + ModuleSettingsWidget( Module & );
- +private:
- + void saveSettings();
- +
- + QCheckBox *enabledB;
- + QDoubleSpinBox *delayB;
- +};
- diff --git a/src/modules/MediaKit/MediaKit.png b/src/modules/MediaKit/MediaKit.png
- new file mode 100644
- index 0000000000000000000000000000000000000000..36cb89c5e5200c5b613e4cf005b772df61aef49c
- GIT binary patch
- literal 5396
- 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
- literal 0
- HcmV?d00001
- diff --git a/src/modules/MediaKit/MediaKit.pro b/src/modules/MediaKit/MediaKit.pro
- new file mode 100644
- index 0000000..96de9dd
- --- /dev/null
- +++ b/src/modules/MediaKit/MediaKit.pro
- @@ -0,0 +1,21 @@
- +TEMPLATE = lib
- +CONFIG += plugin
- +
- +greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
- +
- +DESTDIR = ../../../app/modules
- +
- +QMAKE_LIBDIR += ../../../app/lib
- +LIBS += -lqmplay2 -lmedia -lbe
- +
- +RCC_DIR = build/rcc
- +OBJECTS_DIR = build/obj
- +MOC_DIR = build/moc
- +
- +RESOURCES += icon.qrc
- +
- +INCLUDEPATH += . ../../qmplay2/headers
- +DEPENDPATH += . ../../qmplay2/headers
- +
- +HEADERS += MediaKit.hpp MediaKitoWriter.hpp SndPlayer.hpp RingBuffer.hpp
- +SOURCES += MediaKit.cpp MediaKitWriter.cpp SndPlayer.cpp RingBuffer.cpp
- diff --git a/src/modules/MediaKit/MediaKitWriter.cpp b/src/modules/MediaKit/MediaKitWriter.cpp
- new file mode 100644
- index 0000000..f8fad50
- --- /dev/null
- +++ b/src/modules/MediaKit/MediaKitWriter.cpp
- @@ -0,0 +1,85 @@
- +#include <MediaKitWriter.hpp>
- +#include <QMPlay2Core.hpp>
- +
- +MediaKitWriter::MediaKitWriter( Module &module ) :
- + err( false )
- +{
- + addParam( "delay" );
- + addParam( "chn" );
- + addParam( "rate" );
- +
- + SetModule( module );
- +}
- +
- +bool MediaKitWriter::set()
- +{
- + if ( player.delay != sets().getDouble( "Delay" ) )
- + {
- + player.delay = sets().getDouble( "Delay" );
- + return false;
- + }
- + return sets().getBool( "WriterEnabled" );
- +}
- +
- +bool MediaKitWriter::readyWrite() const
- +{
- + return !err && player.isOpen();
- +}
- +
- +bool MediaKitWriter::processParams( bool * )
- +{
- + bool resetAudio = false;
- +
- + uchar chn = getParam( "chn" ).toUInt();
- + if ( player.channels != chn )
- + {
- + resetAudio = true;
- + player.channels = chn;
- + }
- + uint rate = getParam( "rate" ).toUInt();
- + if ( player.sample_rate != rate )
- + {
- + resetAudio = true;
- + player.sample_rate = rate;
- + }
- +
- + if ( resetAudio || err )
- + {
- + player.stop();
- + err = !player.start();
- + if ( !err )
- + modParam( "delay", player.delay );
- + else
- + QMPlay2Core.logError( "MediaKitWriter :: " + tr ( "Nie można otworzyć strumienia wyjścia dźwięku" ) );
- + }
- +
- + return readyWrite();
- +}
- +qint64 MediaKitWriter::write( const QByteArray &arr )
- +{
- + if ( !arr.size() || !readyWrite() )
- + return 0;
- +
- + err = !player.write( arr );
- + if ( err )
- + {
- + QMPlay2Core.logError( "MediaKitWriter :: " + tr ( "Błąd podczas odtwarzania" ) );
- + return 0;
- + }
- +
- + return arr.size();
- +}
- +
- +qint64 MediaKitWriter::size() const
- +{
- + return -1;
- +}
- +QString MediaKitWriter::name() const
- +{
- + return MediaKitWriterName;
- +}
- +
- +bool MediaKitWriter::open()
- +{
- + return player.isOK();
- +}
- diff --git a/src/modules/MediaKit/MediaKitWriter.hpp b/src/modules/MediaKit/MediaKitWriter.hpp
- new file mode 100644
- index 0000000..28fa249
- --- /dev/null
- +++ b/src/modules/MediaKit/MediaKitWriter.hpp
- @@ -0,0 +1,30 @@
- +#include <Writer.hpp>
- +#include <SndPlayer.hpp>
- +
- +#include <QCoreApplication>
- +
- +class MediaKitWriter : public Writer
- +{
- + Q_DECLARE_TR_FUNCTIONS( MediaKitWriter )
- +public:
- + MediaKitWriter( Module & );
- +private:
- + bool set();
- +
- + bool readyWrite() const;
- +
- + bool processParams( bool *paramsCorrected );
- + qint64 write( const QByteArray & );
- +
- + qint64 size() const;
- + QString name() const;
- +
- + bool open();
- +
- + /**/
- +
- + SndPlayer player;
- + bool err;
- +};
- +
- +#define MediaKitWriterName "MediaKit Writer"
- diff --git a/src/modules/MediaKit/RingBuffer.cpp b/src/modules/MediaKit/RingBuffer.cpp
- new file mode 100644
- index 0000000..915becc
- --- /dev/null
- +++ b/src/modules/MediaKit/RingBuffer.cpp
- @@ -0,0 +1,129 @@
- +#include <stdio.h>
- +#include <stdlib.h>
- +#include <string.h>
- +
- +#include "RingBuffer.hpp"
- +
- +RingBuffer::RingBuffer( int size )
- +{
- + initialized = false;
- + Buffer = new unsigned char[size];
- + if(Buffer!=NULL) {
- + memset( Buffer, 0, size );
- + BufferSize = size;
- + } else {
- + BufferSize = 0;
- + }
- + reader = 0;
- + writer = 0;
- + writeBytesAvailable = size;
- + if((locker=create_sem(1,"locker")) >= B_OK) {
- + initialized = true;
- + } else {
- + if(Buffer!=NULL) {
- + delete[] Buffer;
- + }
- + }
- +}
- +
- +RingBuffer::~RingBuffer( )
- +{
- + if(initialized) {
- + delete[] Buffer;
- + delete_sem(locker);
- + }
- +}
- +
- +bool
- +RingBuffer::Empty( void )
- +{
- + memset( Buffer, 0, BufferSize );
- + reader = 0;
- + writer = 0;
- + writeBytesAvailable = BufferSize;
- + return true;
- +}
- +
- +int
- +RingBuffer::Read( unsigned char *data, int size )
- +{
- + acquire_sem(locker);
- +
- + if( data == 0 || size <= 0 || writeBytesAvailable == BufferSize ) {
- + release_sem(locker);
- + return 0;
- + }
- +
- + int readBytesAvailable = BufferSize - writeBytesAvailable;
- +
- + if( size > readBytesAvailable ) {
- + size = readBytesAvailable;
- + }
- +
- + if(size > BufferSize - reader) {
- + int len = BufferSize - reader;
- + memcpy(data, Buffer + reader, len);
- + memcpy(data + len, Buffer, size-len);
- + } else {
- + memcpy(data, Buffer + reader, size);
- + }
- +
- + reader = (reader + size) % BufferSize;
- + writeBytesAvailable += size;
- +
- + release_sem(locker);
- + return size;
- +}
- +
- +int
- +RingBuffer::Write( unsigned char *data, int size )
- +{
- + acquire_sem(locker);
- +
- + if( data == 0 || size <= 0 || writeBytesAvailable == 0 ) {
- + release_sem(locker);
- + return 0;
- + }
- +
- + if( size > writeBytesAvailable ) {
- + size = writeBytesAvailable;
- + }
- +
- + if(size > BufferSize - writer) {
- + int len = BufferSize - writer;
- + memcpy(Buffer + writer, data, len);
- + memcpy(Buffer, data+len, size-len);
- + } else {
- + memcpy(Buffer + writer, data, size);
- + }
- +
- + writer = (writer + size) % BufferSize;
- + writeBytesAvailable -= size;
- +
- + release_sem(locker);
- + return size;
- +}
- +
- +int
- +RingBuffer::GetSize( void )
- +{
- + return BufferSize;
- +}
- +
- +int
- +RingBuffer::GetWriteAvailable( void )
- +{
- + return writeBytesAvailable;
- +}
- +
- +int
- +RingBuffer::GetReadAvailable( void )
- +{
- + return BufferSize - writeBytesAvailable;
- +}
- +
- +status_t
- +RingBuffer::InitCheck( void )
- +{
- + return initialized?B_OK:B_ERROR;
- +}
- diff --git a/src/modules/MediaKit/RingBuffer.hpp b/src/modules/MediaKit/RingBuffer.hpp
- new file mode 100644
- index 0000000..4715632
- --- /dev/null
- +++ b/src/modules/MediaKit/RingBuffer.hpp
- @@ -0,0 +1,31 @@
- +#ifndef __RING_BUFFER_H__
- +#define __RING_BUFFER_H__
- +
- +#include <OS.h>
- +
- +class RingBuffer {
- +
- +public:
- + RingBuffer(int size);
- + ~RingBuffer();
- + int Read( unsigned char* dataPtr, int numBytes );
- + int Write( unsigned char *dataPtr, int numBytes );
- +
- + bool Empty( void );
- + int GetSize( );
- + int GetWriteAvailable( );
- + int GetReadAvailable( );
- + status_t InitCheck( );
- +private:
- + unsigned char *Buffer;
- + int BufferSize;
- + int reader;
- + int writer;
- + int writeBytesAvailable;
- +
- + sem_id locker;
- +
- + bool initialized;
- +};
- +
- +#endif
- diff --git a/src/modules/MediaKit/SndPlayer.cpp b/src/modules/MediaKit/SndPlayer.cpp
- new file mode 100644
- index 0000000..ca7ad89
- --- /dev/null
- +++ b/src/modules/MediaKit/SndPlayer.cpp
- @@ -0,0 +1,103 @@
- +#include <SndPlayer.hpp>
- +
- +#include <string.h>
- +#include <stdio.h>
- +#include <stdlib.h>
- +#include <SoundPlayer.h>
- +
- +
- +static void proc(void *cookie, void *buffer, size_t len, const media_raw_audio_format &format)
- +{
- + RingBuffer *ring = (RingBuffer*)cookie;
- + unsigned char* ptr = (unsigned char*)buffer;
- +
- + int readed = ring->Read(ptr,len);
- +
- + if(readed <len)
- + memset(ptr+readed, 0, len - readed);
- +}
- +
- +SndPlayer::SndPlayer()
- +{
- + channels = sample_rate = delay = 0;
- + player = NULL;
- + _isOK = true;
- +}
- +
- +bool SndPlayer::start()
- +{
- + int gSoundBufferSize = 8192 * sizeof(float);
- +
- + media_raw_audio_format form = {
- + sample_rate,
- + channels,
- + media_raw_audio_format::B_AUDIO_FLOAT,
- + B_MEDIA_LITTLE_ENDIAN,
- + gSoundBufferSize
- + };
- +
- + ring = new RingBuffer(gSoundBufferSize * 3);
- + if(ring->InitCheck() != B_OK) {
- + delete ring; ring = 0;
- + return false;
- + }
- +
- + player = new BSoundPlayer(&form, "QMPlay2_BSoundPlayer", proc, NULL, (void*)ring);
- +
- + if(player->InitCheck() != B_OK) {
- + delete player;
- + player = NULL;
- + return false;
- + }
- +
- + player->Start();
- + player->SetHasData(true);
- +
- + _isOK = true;
- +
- + return player;
- +}
- +void SndPlayer::stop()
- +{
- + if ( player )
- + {
- + if(player) {
- + player->Stop();
- + delete player;
- + delete ring;
- + }
- +
- + player = NULL;
- + ring = NULL;
- + }
- +}
- +
- +double SndPlayer::getLatency()
- +{
- + double lat = player->Latency() / (ring->GetSize()*4.0);
- +
- + return lat;
- +}
- +
- +bool SndPlayer::write( const QByteArray &arr )
- +{
- + int s = arr.size();
- + while ( s > 0 && s % 4 )
- + s--;
- + if ( s <= 0 )
- + return false;
- +
- + int len=s;
- +
- + unsigned char *src_ptr = (unsigned char *)arr.data();
- +
- + for(;;) {
- + int len2 = ring->Write(src_ptr,len);
- + if(len2 == len)break;
- + len -= len2;
- + src_ptr += len2;
- + snooze(100);
- + }
- +
- + return true;
- +}
- diff --git a/src/modules/MediaKit/SndPlayer.hpp b/src/modules/MediaKit/SndPlayer.hpp
- new file mode 100644
- index 0000000..b0ca8c2
- --- /dev/null
- +++ b/src/modules/MediaKit/SndPlayer.hpp
- @@ -0,0 +1,49 @@
- +#ifndef PULSE_HPP
- +#define PULSE_HPP
- +
- +#include <QByteArray>
- +
- +#include <SoundPlayer.h>
- +
- +#include <Window.h>
- +#include <View.h>
- +#include <TextControl.h>
- +
- +#include "RingBuffer.hpp"
- +
- +class SndPlayer
- +{
- +public:
- + SndPlayer();
- + inline ~SndPlayer()
- + {
- + stop();
- + }
- +
- + inline bool isOK() const
- + {
- + return _isOK;
- + }
- + inline bool isOpen() const
- + {
- + return player;
- + }
- +
- + bool start();
- + void stop();
- +
- + double getLatency();
- +
- + bool write( const QByteArray & );
- +
- + double delay;
- + uchar channels;
- + uint sample_rate;
- +
- +private:
- + bool _isOK;
- + BSoundPlayer *player;
- + RingBuffer *ring;
- +};
- +
- +#endif
- diff --git a/src/modules/MediaKit/icon.qrc b/src/modules/MediaKit/icon.qrc
- new file mode 100644
- index 0000000..24b4ebd
- --- /dev/null
- +++ b/src/modules/MediaKit/icon.qrc
- @@ -0,0 +1,3 @@
- +<RCC><qresource>
- + <file alias="MediaKit">MediaKit.png</file>
- +</qresource></RCC>
- diff --git a/src/modules/Modplug/Modplug.pro b/src/modules/Modplug/Modplug.pro
- index bba6eac..cb52e21 100644
- --- a/src/modules/Modplug/Modplug.pro
- +++ b/src/modules/Modplug/Modplug.pro
- @@ -3,8 +3,15 @@ CONFIG += plugin
- QT += widgets
- -DESTDIR = ../../../app/lib/qmplay2/modules
- -QMAKE_LIBDIR += ../../../app/lib
- +haiku {
- + DESTDIR = ../../../app/modules
- + QMAKE_LIBDIR += ../../../app/lib
- + LIBS += -lz
- +}
- + else {
- + DESTDIR = ../../../app/lib/qmplay2/modules
- + QMAKE_LIBDIR += ../../../app/lib
- +}
- LIBS += -lqmplay2
- diff --git a/src/modules/Playlists/Playlists.pro b/src/modules/Playlists/Playlists.pro
- index 12add39..934612c 100644
- --- a/src/modules/Playlists/Playlists.pro
- +++ b/src/modules/Playlists/Playlists.pro
- @@ -3,8 +3,14 @@ CONFIG += plugin
- QT += widgets
- -DESTDIR = ../../../app/lib/qmplay2/modules
- -QMAKE_LIBDIR += ../../../app/lib
- +haiku {
- + DESTDIR = ../../../app/modules
- + QMAKE_LIBDIR += ../../../app/lib
- +}
- +else {
- + DESTDIR = ../../../app/lib/qmplay2/modules
- + QMAKE_LIBDIR += ../../../app/lib
- +}
- LIBS += -lqmplay2
- diff --git a/src/modules/QPainter/QPainter.pro b/src/modules/QPainter/QPainter.pro
- index f6a5b2b..43e4e0c 100644
- --- a/src/modules/QPainter/QPainter.pro
- +++ b/src/modules/QPainter/QPainter.pro
- @@ -3,8 +3,14 @@ CONFIG += plugin
- QT += widgets
- -DESTDIR = ../../../app/lib/qmplay2/modules
- -QMAKE_LIBDIR += ../../../app/lib
- +haiku {
- + DESTDIR = ../../../app/modules
- + QMAKE_LIBDIR += ../../../app/lib
- +}
- + else {
- + DESTDIR = ../../../app/lib/qmplay2/modules
- + QMAKE_LIBDIR += ../../../app/lib
- +}
- LIBS += -lqmplay2
- diff --git a/src/modules/Subtitles/Subtitles.pro b/src/modules/Subtitles/Subtitles.pro
- index 7108557..2bdfe16 100644
- --- a/src/modules/Subtitles/Subtitles.pro
- +++ b/src/modules/Subtitles/Subtitles.pro
- @@ -3,8 +3,14 @@ CONFIG += plugin
- QT += widgets
- -DESTDIR = ../../../app/lib/qmplay2/modules
- -QMAKE_LIBDIR += ../../../app/lib
- +haiku {
- + DESTDIR = ../../../app/modules
- + QMAKE_LIBDIR += ../../../app/lib
- +}
- + else {
- + DESTDIR = ../../../app/lib/qmplay2/modules
- + QMAKE_LIBDIR += ../../../app/lib
- +}
- LIBS += -lqmplay2
- diff --git a/src/modules/VideoFilters/VideoFilters.pro b/src/modules/VideoFilters/VideoFilters.pro
- index 870fd70..f77c0b4 100644
- --- a/src/modules/VideoFilters/VideoFilters.pro
- +++ b/src/modules/VideoFilters/VideoFilters.pro
- @@ -3,8 +3,14 @@ CONFIG += plugin
- QT += widgets
- +haiku {
- + DESTDIR = ../../../app/modules
- + QMAKE_LIBDIR += ../../../app/lib
- +}
- + else {
- DESTDIR = ../../../app/lib/qmplay2/modules
- QMAKE_LIBDIR += ../../../app/lib
- +}
- android: LIBS += -lavutil
- else {
- diff --git a/src/modules/Visualizations/Visualizations.pro b/src/modules/Visualizations/Visualizations.pro
- index 388bd62..c759191 100644
- --- a/src/modules/Visualizations/Visualizations.pro
- +++ b/src/modules/Visualizations/Visualizations.pro
- @@ -4,8 +4,14 @@ CONFIG += plugin
- !lessThan(QT_VERSION, 5.6.0): DEFINES += USE_OPENGL
- QT += widgets
- -DESTDIR = ../../../app/lib/qmplay2/modules
- -QMAKE_LIBDIR += ../../../app/lib
- +haiku {
- + DESTDIR = ../../../app/modules
- + QMAKE_LIBDIR += ../../../app/lib
- +}
- + else {
- + DESTDIR = ../../../app/lib/qmplay2/modules
- + QMAKE_LIBDIR += ../../../app/lib
- +}
- android: LIBS += -lavcodec -lavutil
- else {
- diff --git a/src/modules/modules.pro b/src/modules/modules.pro
- index 6e853ea..bcf23c4 100644
- --- a/src/modules/modules.pro
- +++ b/src/modules/modules.pro
- @@ -10,11 +10,14 @@ linux*: {
- !android: SUBDIRS += ALSA
- else: SUBDIRS += OpenSLES
- }
- +haiku {
- + SUBDIRS += MediaKit
- +}
- else {
- SUBDIRS += PortAudio
- }
- -unix:!android {
- +unix:!android:!haiku: {
- SUBDIRS += XVideo
- packagesExist(libpulse-simple): SUBDIRS += PulseAudio
- diff --git a/src/qmplay2/qmplay2.pro b/src/qmplay2/qmplay2.pro
- index 2d34804..1c0c6c6 100644
- --- a/src/qmplay2/qmplay2.pro
- +++ b/src/qmplay2/qmplay2.pro
- @@ -28,7 +28,7 @@ DEPENDPATH += . headers
- HEADERS += headers/QMPlay2Core.hpp headers/Functions.hpp headers/Settings.hpp headers/Module.hpp headers/ModuleParams.hpp headers/ModuleCommon.hpp headers/Playlist.hpp headers/Reader.hpp headers/Demuxer.hpp headers/Decoder.hpp headers/VideoFilters.hpp headers/VideoFilter.hpp headers/DeintFilter.hpp headers/AudioFilter.hpp headers/Writer.hpp headers/QMPlay2Extensions.hpp headers/LineEdit.hpp headers/Slider.hpp headers/QMPlay2OSD.hpp headers/InDockW.hpp headers/LibASS.hpp headers/ColorButton.hpp headers/ImgScaler.hpp headers/SndResampler.hpp headers/VideoWriter.hpp headers/SubsDec.hpp headers/ByteArray.hpp headers/TimeStamp.hpp headers/Packet.hpp headers/VideoFrame.hpp headers/StreamInfo.hpp headers/DockWidget.hpp headers/IOController.hpp headers/ChapterProgramInfo.hpp headers/PacketBuffer.hpp headers/Buffer.hpp headers/NetworkAccess.hpp headers/Json11.hpp headers/YouTubeDL.hpp headers/Notifies.hpp headers/NotifiesTray.hpp headers/Version.hpp headers/IPC.hpp headers/MkvMuxer.hpp headers/CPU.hpp headers/PixelFormats.hpp headers/HWAccelInterface.hpp headers/VideoAdjustment.hpp
- SOURCES += QMPlay2Core.cpp Functions.cpp Settings.cpp Module.cpp ModuleParams.cpp ModuleCommon.cpp Playlist.cpp Reader.cpp Demuxer.cpp Decoder.cpp VideoFilters.cpp VideoFilter.cpp DeintFilter.cpp AudioFilter.cpp Writer.cpp QMPlay2Extensions.cpp LineEdit.cpp Slider.cpp QMPlay2OSD.cpp InDockW.cpp LibASS.cpp ColorButton.cpp ImgScaler.cpp SndResampler.cpp VideoWriter.cpp SubsDec.cpp VideoFrame.cpp StreamInfo.cpp DockWidget.cpp PacketBuffer.cpp Buffer.cpp NetworkAccess.cpp Json11.cpp YouTubeDL.cpp Notifies.cpp NotifiesTray.cpp Version.cpp IPC_Unix.cpp MkvMuxer.cpp
- -unix:!android {
- +unix:!android:!haiku {
- QT += dbus
- DBUS_INTERFACES += org.freedesktop.Notifications.xml
- HEADERS += headers/NotifiesFreedesktop.hpp
- @@ -39,6 +39,6 @@ DEFINES += __STDC_CONSTANT_MACROS
- !android: DEFINES += QMPLAY2_LIBASS
- # Uncomment below lines for avresample:
- -#DEFINES += QMPLAY2_AVRESAMPLE
- -#PKGCONFIG -= libswresample
- -#PKGCONFIG += libavresample
- +DEFINES += QMPLAY2_AVRESAMPLE
- +PKGCONFIG -= libswresample
- +PKGCONFIG += libavresample
- --
- 2.12.2
- From 72394ace59597caec9543941fba76abcad9c4f01 Mon Sep 17 00:00:00 2001
- From: Khaled Berraoui <khallebal@gmail.com>
- Date: Wed, 7 Jun 2017 01:06:09 +0100
- Subject: Switch to Cmake build system
- diff --git a/CMakeLists.txt b/CMakeLists.txt
- index ebea6b6..b54b5a3 100644
- --- a/CMakeLists.txt
- +++ b/CMakeLists.txt
- @@ -81,7 +81,7 @@ if(USE_QT5 AND NOT Qt5Widgets_FOUND)
- find_package(Qt5Widgets REQUIRED)
- endif()
- -if(NOT WIN32 AND NOT APPLE)
- +if(NOT WIN32 AND NOT APPLE AND NOT HAIKU)
- option(USE_FREEDESKTOP_NOTIFICATIONS "Use Freedesktop notifications" ON)
- add_feature_info("Freedesktop notifications" USE_FREEDESKTOP_NOTIFICATIONS "Use Freedesktop notifications")
- endif()
- @@ -326,7 +326,7 @@ if(APPLE)
- set(DEFAULT_INSTALL_RPATH ON)
- endif()
- -if(NOT WIN32 AND NOT APPLE)
- +if(NOT WIN32 AND NOT APPLE AND NOT HAIKU)
- # RPATH
- option(SET_INSTALL_RPATH "Set RPATH for executable after install" ${DEFAULT_INSTALL_RPATH})
- @@ -339,7 +339,7 @@ if(LANGUAGES)
- add_subdirectory(lang)
- endif()
- -if(WIN32)
- +if(WIN32 OR HAIKU)
- install(FILES AUTHORS ChangeLog LICENSE TODO README.md DESTINATION ${CMAKE_INSTALL_PREFIX})
- else()
- install(FILES AUTHORS ChangeLog LICENSE TODO README.md DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/qmplay2")
- diff --git a/lang/CMakeLists.txt b/lang/CMakeLists.txt
- index f5f86be..9b4fcf7 100644
- --- a/lang/CMakeLists.txt
- +++ b/lang/CMakeLists.txt
- @@ -21,7 +21,7 @@ endif()
- add_custom_target(translations ALL DEPENDS ${QM_FILES})
- -if(WIN32)
- +if(WIN32 OR HAIKU)
- install(FILES ${QM_FILES} DESTINATION "lang/")
- else()
- install(FILES ${QM_FILES} DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/qmplay2/lang")
- diff --git a/src/gui/CMakeLists.txt b/src/gui/CMakeLists.txt
- index 5853dc9..6adc25b 100644
- --- a/src/gui/CMakeLists.txt
- +++ b/src/gui/CMakeLists.txt
- @@ -210,7 +210,7 @@ elseif(USE_TAGLIB)
- target_link_libraries(${PROJECT_NAME} ${TAGLIB_LIBRARIES})
- endif()
- -if(WIN32)
- +if(WIN32 OR HAIKU)
- install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/)
- elseif(APPLE)
- install(TARGETS ${PROJECT_NAME} BUNDLE DESTINATION ${CMAKE_INSTALL_PREFIX})
- diff --git a/src/modules/CMakeLists.txt b/src/modules/CMakeLists.txt
- index 203c68d..9cd9e31 100644
- --- a/src/modules/CMakeLists.txt
- +++ b/src/modules/CMakeLists.txt
- @@ -7,6 +7,9 @@ if(WIN32)
- elseif(APPLE)
- set(MODULES_INSTALL_PATH "${CMAKE_INSTALL_LIBDIR}/modules")
- set(QMPLAY2_MODULE SHARED) # otherwise CMake uses ".so" extension
- +elseif(HAIKU)
- + set(MODULES_INSTALL_PATH "modules")
- + set(QMPLAY2_MODULE MODULE)
- else()
- set(MODULES_INSTALL_PATH "${CMAKE_INSTALL_LIBDIR}/qmplay2/modules")
- set(QMPLAY2_MODULE MODULE)
- @@ -77,6 +80,10 @@ if(WIN32)
- add_subdirectory(FileAssociation)
- endif()
- +if(HAIKU)
- + add_subdirectory(MediaKit)
- +endif()
- +
- if(USE_CUVID)
- add_subdirectory(CUVID)
- endif()
- diff --git a/src/modules/MediaKit/CMakeLists.txt b/src/modules/MediaKit/CMakeLists.txt
- new file mode 100644
- index 0000000..c6a2e5b
- --- /dev/null
- +++ b/src/modules/MediaKit/CMakeLists.txt
- @@ -0,0 +1,63 @@
- +cmake_minimum_required(VERSION 2.8.6)
- +if(COMMAND cmake_policy)
- + if(POLICY CMP0003)
- + cmake_policy(SET CMP0003 NEW)
- + endif()
- + if(POLICY CMP0020)
- + cmake_policy(SET CMP0020 NEW)
- + endif()
- + if(POLICY CMP0042)
- + cmake_policy(SET CMP0042 NEW)
- + endif()
- + if(POLICY CMP0043)
- + cmake_policy(SET CMP0043 NEW)
- + endif()
- +endif()
- +project(MediaKit)
- +
- +set(MediaKit_HDR
- + MediaKit.hpp
- + MediaKitWriter.hpp
- + SndPlayer.hpp
- + RingBuffer.hpp
- +)
- +
- +set(MediaKit_SRC
- + MediaKit.cpp
- + MediaKitWriter.cpp
- + SndPlayer.cpp
- + RingBuffer.cpp
- +)
- +
- +set(MediaKit_RESOURCES
- + icon.qrc
- +)
- +
- +include_directories(../../qmplay2/headers
- + ${LIBMEDIA_INCLUDE_DIRS}
- + ${LIBBE_INCLUDE_DIRS}
- +)
- +
- +if(USE_QT5)
- + qt5_add_resources(MediaKit_RESOURCES_RCC ${MediaKit_RESOURCES})
- +else()
- + qt4_add_resources(MediaKit_RESOURCES_RCC ${MediaKit_RESOURCES})
- +endif()
- +
- +add_library(${PROJECT_NAME} ${QMPLAY2_MODULE}
- + ${MediaKit_HDR}
- + ${MediaKit_SRC}
- +)
- +
- +if(USE_QT5)
- + qt5_use_modules(${PROJECT_NAME} Gui Widgets)
- +else()
- + target_link_libraries(${PROJECT_NAME} Qt4::QtCore Qt4::QtGui)
- +endif()
- +
- +add_dependencies(${PROJECT_NAME} libqmplay2)
- +target_link_libraries(${PROJECT_NAME}
- + ${qmplay2lib}
- +)
- +
- +install(TARGETS ${PROJECT_NAME} LIBRARY DESTINATION ${MODULES_INSTALL_PATH})
- diff --git a/src/modules/MediaKit/MediaKit.cpp b/src/modules/MediaKit/MediaKit.cpp
- index 1647325..e191555 100644
- --- a/src/modules/MediaKit/MediaKit.cpp
- +++ b/src/modules/MediaKit/MediaKit.cpp
- @@ -4,7 +4,7 @@
- MediaKit::MediaKit() :
- Module( "MediaKit" )
- {
- - moduleImg = QImage( ":/MediaKit" );
- + m_icon = QIcon( ":/MediaKit" );
- init( "WriterEnabled", true );
- init( "Delay", 0.2 );
- @@ -34,17 +34,18 @@ QMPLAY2_EXPORT_PLUGIN( MediaKit )
- /**/
- #include <QDoubleSpinBox>
- -#include <QGridLayout>
- +#include <QFormLayout>
- +#include <QComboBox>
- #include <QCheckBox>
- #include <QLabel>
- ModuleSettingsWidget::ModuleSettingsWidget( Module &module ) :
- Module::SettingsWidget( module )
- {
- - enabledB = new QCheckBox( tr( "Włączony" ) );
- + enabledB = new QCheckBox( tr( "Enabled" ) );
- enabledB->setChecked( sets().getBool( "WriterEnabled" ) );
- - QLabel *delayL = new QLabel( tr( "Opóźnienie" ) + ": " );
- + QLabel *delayL = new QLabel( tr( "Delay" ) + ": " );
- delayB = new QDoubleSpinBox;
- delayB->setRange( 0.01, 1.0 );
- @@ -52,10 +53,10 @@ ModuleSettingsWidget::ModuleSettingsWidget( Module &module ) :
- delayB->setSuffix( " " + tr( "sek" ) );
- delayB->setValue( sets().getDouble( "Delay" ) );
- - QGridLayout *layout = new QGridLayout( this );
- - layout->addWidget( enabledB, 0, 0, 1, 2 );
- - layout->addWidget( delayL, 1, 0, 1, 1 );
- - layout->addWidget( delayB, 1, 1, 1, 1 );
- + QFormLayout *layout = new QFormLayout( this );
- + layout->addRow( enabledB);
- + layout->addRow(tr("Delay") + ": ", delayL);
- + layout->addRow(tr("Delay") + ": ", delayB);
- }
- void ModuleSettingsWidget::saveSettings()
- diff --git a/src/modules/Notify/Notify.pro b/src/modules/Notify/Notify.pro
- index 345da48..3813eda 100644
- --- a/src/modules/Notify/Notify.pro
- +++ b/src/modules/Notify/Notify.pro
- @@ -3,8 +3,14 @@ CONFIG += plugin
- QT += widgets
- -DESTDIR = ../../../app/lib/qmplay2/modules
- -QMAKE_LIBDIR += ../../../app/lib
- +haiku {
- + DESTDIR = ../../../app/modules
- + QMAKE_LIBDIR += ../../../app/lib
- +}
- + else {
- + DESTDIR = ../../../app/lib/qmplay2/modules
- + QMAKE_LIBDIR += ../../../app/lib
- +}
- LIBS += -lqmplay2
- diff --git a/src/qmplay2/CMakeLists.txt b/src/qmplay2/CMakeLists.txt
- index c41de09..8927969 100644
- --- a/src/qmplay2/CMakeLists.txt
- +++ b/src/qmplay2/CMakeLists.txt
- @@ -227,7 +227,7 @@ if(WIN32)
- install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX})
- else()
- install(TARGETS ${PROJECT_NAME} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
- - if(NOT APPLE)
- + if(NOT APPLE AND NOT HAIKU)
- install(FILES ${QMPLAY2_HDR} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/QMPlay2")
- endif()
- --
- 2.12.2
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement