Common Source Code Project for Qt (a.k.a for FM-7).
Revision | 5293ff06fb3ec7e1af33689907795af3dc34397a (tree) |
---|---|
Time | 2022-08-05 21:31:51 |
Author | K.Ohta <whatisthis.sowhat@gmai...> |
Commiter | K.Ohta |
[OSD][SOUND][SOUND_BUFFER] Make sound buffer to RINGED BUFFER, and make shared pointer of based FIFO template (UNLOCKED_FIFO).
@@ -5,7 +5,8 @@ SOUND_BUFFER_QT::SOUND_BUFFER_QT(uint64_t depth, QObject *parent) : QIODevice(pa | ||
5 | 5 | { |
6 | 6 | // printf("SOUND_BUFFER_QT(%d)\n", depth); |
7 | 7 | if((depth > 0) && (depth < INT_MAX)) { |
8 | - m_buffer.reset(new FIFO_BASE::LOCKED_FIFO<uint8_t>((int)depth)); | |
8 | + //m_buffer.reset(new FIFO_BASE::LOCKED_FIFO<uint8_t>((int)depth)); | |
9 | + m_buffer.reset(new FIFO_BASE::LOCKED_RINGBUFFER<uint8_t>((int)depth)); | |
9 | 10 | } |
10 | 11 | } |
11 | 12 |
@@ -26,7 +27,7 @@ bool SOUND_BUFFER_QT::open(QIODeviceBase::OpenMode flags) | ||
26 | 27 | } |
27 | 28 | |
28 | 29 | if ((flags & QIODeviceBase::Truncate) == QIODeviceBase::Truncate) { |
29 | - std::shared_ptr<FIFO_BASE::LOCKED_FIFO<uint8_t>> p = m_buffer; | |
30 | + std::shared_ptr<FIFO_BASE::UNLOCKED_FIFO<uint8_t>> p = m_buffer; | |
30 | 31 | p->clear(); |
31 | 32 | } |
32 | 33 | //return QIODevice::open(flags | QIODevice::Unbuffered); |
@@ -44,7 +45,7 @@ bool SOUND_BUFFER_QT::open(QIODevice::OpenMode flags) | ||
44 | 45 | } |
45 | 46 | |
46 | 47 | if ((flags & QIODevice::Truncate) == QIODevice::Truncate) { |
47 | - std::shared_ptr<FIFO_BASE::LOCKED_FIFO<uint8_t>> p = m_buffer; | |
48 | + std::shared_ptr<FIFO_BASE::UNLOCKED_FIFO<uint8_t>> p = m_buffer; | |
48 | 49 | p->clear(); |
49 | 50 | } |
50 | 51 | //return QIODevice::open(flags | QIODevice::Unbuffered); |
@@ -55,7 +56,7 @@ bool SOUND_BUFFER_QT::open(QIODevice::OpenMode flags) | ||
55 | 56 | void SOUND_BUFFER_QT::close() |
56 | 57 | { |
57 | 58 | // //printf("close()\n"); |
58 | - std::shared_ptr<FIFO_BASE::LOCKED_FIFO<uint8_t>> p = m_buffer; | |
59 | + std::shared_ptr<FIFO_BASE::UNLOCKED_FIFO<uint8_t>> p = m_buffer; | |
59 | 60 | if(p) { |
60 | 61 | p->clear(); |
61 | 62 | } |
@@ -65,7 +66,7 @@ void SOUND_BUFFER_QT::close() | ||
65 | 66 | bool SOUND_BUFFER_QT::resize(qint64 sz) |
66 | 67 | { |
67 | 68 | // printf("resize()\n"); |
68 | - std::shared_ptr<FIFO_BASE::LOCKED_FIFO<uint8_t>> p = m_buffer; | |
69 | + std::shared_ptr<FIFO_BASE::UNLOCKED_FIFO<uint8_t>> p = m_buffer; | |
69 | 70 | if((sz <= 0) || (sz >= INT_MAX) || !(p)) { |
70 | 71 | return false; |
71 | 72 | } |
@@ -86,7 +87,7 @@ qint64 SOUND_BUFFER_QT::bytesToWrite() const | ||
86 | 87 | { |
87 | 88 | qint64 _n = (qint64)0; |
88 | 89 | |
89 | - std::shared_ptr<FIFO_BASE::LOCKED_FIFO<uint8_t>> p = m_buffer; | |
90 | + std::shared_ptr<FIFO_BASE::UNLOCKED_FIFO<uint8_t>> p = m_buffer; | |
90 | 91 | #if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) |
91 | 92 | if((p) && ((openMode() & QIODeviceBase::Unbuffered) == 0)) { |
92 | 93 | #else |
@@ -103,7 +104,7 @@ qint64 SOUND_BUFFER_QT::bytesToWrite() const | ||
103 | 104 | qint64 SOUND_BUFFER_QT::bytesAvailable() const |
104 | 105 | { |
105 | 106 | qint64 _size = QIODevice::bytesAvailable(); |
106 | - std::shared_ptr<FIFO_BASE::LOCKED_FIFO<uint8_t>> p = m_buffer; | |
107 | + std::shared_ptr<FIFO_BASE::UNLOCKED_FIFO<uint8_t>> p = m_buffer; | |
107 | 108 | if(p) { |
108 | 109 | _size += p->count(); |
109 | 110 | //_size += (qint64)(p->fifo_size() - p->count()); |
@@ -116,7 +117,7 @@ qint64 SOUND_BUFFER_QT::pos() const | ||
116 | 117 | { |
117 | 118 | qint64 _pos = (qint64)0; |
118 | 119 | #if 0 |
119 | - std::shared_ptr<FIFO_BASE::LOCKED_FIFO<uint8_t>> p = m_buffer; | |
120 | + std::shared_ptr<FIFO_BASE::UNLOCKED_FIFO<uint8_t>> p = m_buffer; | |
120 | 121 | if(p) { |
121 | 122 | _pos = (p->count()) % (p->fifo_size()); |
122 | 123 | } |
@@ -134,7 +135,7 @@ bool SOUND_BUFFER_QT::seek(qint64 pos) | ||
134 | 135 | if(pos == 0) { |
135 | 136 | return true; |
136 | 137 | } |
137 | - std::shared_ptr<FIFO_BASE::LOCKED_FIFO<uint8_t>> p = m_buffer; | |
138 | + std::shared_ptr<FIFO_BASE::UNLOCKED_FIFO<uint8_t>> p = m_buffer; | |
138 | 139 | if(p) { |
139 | 140 | if(pos < p->count()) { |
140 | 141 | uint8_t* buf = new uint8_t[pos]; |
@@ -155,7 +156,7 @@ bool SOUND_BUFFER_QT::atEnd() const | ||
155 | 156 | { |
156 | 157 | // printf("atEnd()\n"); |
157 | 158 | const bool result = isOpen(); |
158 | - std::shared_ptr<FIFO_BASE::LOCKED_FIFO<uint8_t>> p = m_buffer; | |
159 | + std::shared_ptr<FIFO_BASE::UNLOCKED_FIFO<uint8_t>> p = m_buffer; | |
159 | 160 | if(p) { |
160 | 161 | return (!(result) || (p->empty())); |
161 | 162 | } |
@@ -166,7 +167,7 @@ bool SOUND_BUFFER_QT::atEnd() const | ||
166 | 167 | bool SOUND_BUFFER_QT::reset() |
167 | 168 | { |
168 | 169 | //printf("reset()\n"); |
169 | - std::shared_ptr<FIFO_BASE::LOCKED_FIFO<uint8_t>> p = m_buffer; | |
170 | + std::shared_ptr<FIFO_BASE::UNLOCKED_FIFO<uint8_t>> p = m_buffer; | |
170 | 171 | if(p) { |
171 | 172 | p->clear(); |
172 | 173 | return true; |
@@ -178,7 +179,7 @@ qint64 SOUND_BUFFER_QT::readData(char *data, qint64 len) | ||
178 | 179 | { |
179 | 180 | //printf("readData() called len=%lld\n", len); |
180 | 181 | if(!(isReadable()) || !(isOpen())) return qint64(-1); |
181 | - std::shared_ptr<FIFO_BASE::LOCKED_FIFO<uint8_t>> p = m_buffer; | |
182 | + std::shared_ptr<FIFO_BASE::UNLOCKED_FIFO<uint8_t>> p = m_buffer; | |
182 | 183 | |
183 | 184 | if(p) { |
184 | 185 | if ((len = qMin(len, qint64(p->count()))) <= 0) { |
@@ -198,7 +199,7 @@ qint64 SOUND_BUFFER_QT::writeData(const char *data, qint64 len) | ||
198 | 199 | { |
199 | 200 | if(!(isWritable()) || !(isOpen())) return qint64(-1); |
200 | 201 | //printf("writeData() called len=%lld\n", len); |
201 | - std::shared_ptr<FIFO_BASE::LOCKED_FIFO<uint8_t>> p = m_buffer; | |
202 | + std::shared_ptr<FIFO_BASE::UNLOCKED_FIFO<uint8_t>> p = m_buffer; | |
202 | 203 | if(p) { |
203 | 204 | if ((len = qMin(len, qint64(p->left()))) <= 0) { |
204 | 205 | return qint64(0); |
@@ -11,7 +11,8 @@ class DLL_PREFIX SOUND_BUFFER_QT : public QIODevice | ||
11 | 11 | Q_OBJECT |
12 | 12 | |
13 | 13 | protected: |
14 | - std::shared_ptr<FIFO_BASE::LOCKED_FIFO<uint8_t>>m_buffer; | |
14 | + //std::shared_ptr<FIFO_BASE::LOCKED_FIFO<uint8_t>>m_buffer; | |
15 | + std::shared_ptr<FIFO_BASE::UNLOCKED_FIFO<uint8_t>>m_buffer; | |
15 | 16 | public: |
16 | 17 | SOUND_BUFFER_QT(uint64_t depth = 0, QObject *parent = nullptr); |
17 | 18 | ~SOUND_BUFFER_QT(); |