1 /* 2 SPDX-FileCopyrightText: 2006 Pino Toscano <pino@kde.org> 3 4 SPDX-License-Identifier: GPL-2.0-or-later 5 */ 6 7 #include "sound.h" 8 9 #include <QVariant> 10 11 using namespace Okular; 12 13 class Sound::Private 14 { 15 public: Private(const QByteArray & data)16 explicit Private(const QByteArray &data) 17 : m_data(QVariant(data)) 18 , m_type(Sound::Embedded) 19 { 20 init(); 21 } 22 Private(const QString & url)23 explicit Private(const QString &url) 24 : m_data(QVariant(url)) 25 , m_type(Sound::External) 26 { 27 init(); 28 } 29 init()30 void init() 31 { 32 m_samplingRate = 44100.0; 33 m_channels = 1; 34 m_bitsPerSample = 8; 35 m_soundEncoding = Sound::Raw; 36 } 37 38 QVariant m_data; 39 Sound::SoundType m_type; 40 double m_samplingRate; 41 int m_channels; 42 int m_bitsPerSample; 43 SoundEncoding m_soundEncoding; 44 }; 45 Sound(const QByteArray & data)46Sound::Sound(const QByteArray &data) 47 : d(new Private(data)) 48 { 49 } 50 Sound(const QString & url)51Sound::Sound(const QString &url) 52 : d(new Private(url)) 53 { 54 } 55 ~Sound()56Sound::~Sound() 57 { 58 delete d; 59 } 60 soundType() const61Sound::SoundType Sound::soundType() const 62 { 63 return d->m_type; 64 } 65 url() const66QString Sound::url() const 67 { 68 return d->m_type == Sound::External ? d->m_data.toString() : QString(); 69 } 70 data() const71QByteArray Sound::data() const 72 { 73 return d->m_type == Sound::Embedded ? d->m_data.toByteArray() : QByteArray(); 74 } 75 samplingRate() const76double Sound::samplingRate() const 77 { 78 return d->m_samplingRate; 79 } 80 setSamplingRate(double samplingRate)81void Sound::setSamplingRate(double samplingRate) 82 { 83 d->m_samplingRate = samplingRate; 84 } 85 channels() const86int Sound::channels() const 87 { 88 return d->m_channels; 89 } 90 setChannels(int channels)91void Sound::setChannels(int channels) 92 { 93 d->m_channels = channels; 94 } 95 bitsPerSample() const96int Sound::bitsPerSample() const 97 { 98 return d->m_bitsPerSample; 99 } 100 setBitsPerSample(int bitsPerSample)101void Sound::setBitsPerSample(int bitsPerSample) 102 { 103 d->m_bitsPerSample = bitsPerSample; 104 } 105 soundEncoding() const106Sound::SoundEncoding Sound::soundEncoding() const 107 { 108 return d->m_soundEncoding; 109 } 110 setSoundEncoding(Sound::SoundEncoding soundEncoding)111void Sound::setSoundEncoding(Sound::SoundEncoding soundEncoding) 112 { 113 d->m_soundEncoding = soundEncoding; 114 } 115