Use of native STL vector data pointer

pull/103/head
Marcin Kondej 2019-10-29 02:04:55 +01:00
rodzic c735b6f834
commit 302e6edc59
6 zmienionych plików z 25 dodań i 23 usunięć

Wyświetl plik

@ -52,7 +52,7 @@ Sample::Sample(uint8_t *data, uint16_t channels, uint16_t bitsPerChannel)
delete[] channelValues;
}
float Sample::getMonoValue()
float Sample::getMonoValue() const
{
return value;
}
@ -65,8 +65,8 @@ PreEmphasis::PreEmphasis(uint32_t sampleRate)
float PreEmphasis::filter(float value)
{
prevValue = value;
value = value + (prevValue - value) / (1.f - timeConst);
prevValue = value;
return value;
}
#endif

Wyświetl plik

@ -40,7 +40,7 @@ class Sample
{
public:
Sample(uint8_t *data, uint16_t channels, uint16_t bitsPerChannel);
float getMonoValue();
float getMonoValue() const;
protected:
float value;
};

Wyświetl plik

@ -150,12 +150,12 @@ Transmitter &Transmitter::getInstance()
return instance;
}
uint32_t Transmitter::getPeripheralsVirtBaseAddress()
uint32_t Transmitter::getPeripheralsVirtBaseAddress() const
{
return (bcm_host_get_peripheral_size() == BCM2838_PERI_VIRT_BASE) ? BCM2838_PERI_VIRT_BASE : bcm_host_get_peripheral_address();
}
uint32_t Transmitter::getPeripheralsSize()
uint32_t Transmitter::getPeripheralsSize() const
{
uint32_t size = bcm_host_get_peripheral_size();
if (size == BCM2838_PERI_VIRT_BASE) {
@ -164,20 +164,22 @@ uint32_t Transmitter::getPeripheralsSize()
return size;
}
float Transmitter::getSourceFreq()
float Transmitter::getSourceFreq() const
{
return (getPeripheralsVirtBaseAddress() == BCM2838_PERI_VIRT_BASE) ? BCM2838_PLLD_FREQ : BCM2835_PLLD_FREQ;
}
uint32_t Transmitter::getPeripheralPhysAddress(volatile void *object) {
uint32_t Transmitter::getPeripheralPhysAddress(volatile void *object) const
{
return PERIPHERALS_PHYS_BASE + (reinterpret_cast<uint32_t>(object) - reinterpret_cast<uint32_t>(peripherals));
}
uint32_t Transmitter::getPeripheralVirtAddress(uint32_t offset) {
uint32_t Transmitter::getPeripheralVirtAddress(uint32_t offset) const
{
return reinterpret_cast<uint32_t>(peripherals) + offset;
}
uint32_t Transmitter::getMemoryPhysAddress(AllocatedMemory &memory, volatile void *object)
uint32_t Transmitter::getMemoryPhysAddress(AllocatedMemory &memory, volatile void *object) const
{
return memory.physicalBase + (reinterpret_cast<uint32_t>(object) - memory.virtualBase);
}

Wyświetl plik

@ -55,12 +55,12 @@ class Transmitter
void stop();
private:
Transmitter();
uint32_t getPeripheralsVirtBaseAddress();
uint32_t getPeripheralsSize();
float getSourceFreq();
uint32_t getPeripheralPhysAddress(volatile void *object);
static uint32_t getPeripheralVirtAddress(uint32_t offset);
uint32_t getMemoryPhysAddress(AllocatedMemory &memory, volatile void *object);
uint32_t getPeripheralsVirtBaseAddress() const;
uint32_t getPeripheralsSize() const;
float getSourceFreq() const;
uint32_t getPeripheralPhysAddress(volatile void *object) const;
static uint32_t getPeripheralVirtAddress(uint32_t offset) const;
uint32_t getMemoryPhysAddress(AllocatedMemory &memory, volatile void *object) const;
AllocatedMemory allocateMemory(uint32_t size);
void freeMemory(AllocatedMemory &memory);
volatile PWMRegisters *initPwmController();

Wyświetl plik

@ -39,7 +39,7 @@
#include <unistd.h>
#include <fcntl.h>
WaveReader::WaveReader(std::string filename, bool &continueFlag) :
WaveReader::WaveReader(const std::string &filename, bool &continueFlag) :
filename(filename), headerOffset(0), currentDataOffset(0)
{
if (!filename.empty()) {
@ -126,7 +126,7 @@ std::vector<uint8_t> WaveReader::readData(uint32_t bytesToRead, bool headerBytes
if (!continueFlag) {
throw std::runtime_error("Cannot obtain header, program interrupted");
}
std::memcpy(&(reinterpret_cast<uint8_t *>(&header))[headerOffset], &data[0], bytesRead);
std::memcpy(&(reinterpret_cast<uint8_t *>(&header))[headerOffset], data.data(), bytesRead);
headerOffset += bytesRead;
} else {
currentDataOffset += bytesRead;
@ -144,7 +144,7 @@ std::vector<Sample> WaveReader::getSamples(uint32_t quantity, bool &continueFlag
quantity = bytesToRead / bytesPerSample;
}
std::vector<uint8_t> data = readData(bytesToRead, false, continueFlag);
std::vector<uint8_t> data(std::move(readData(bytesToRead, false, continueFlag)));
if (data.size() < bytesToRead) {
quantity = data.size() / bytesPerSample;
}
@ -166,12 +166,12 @@ bool WaveReader::setSampleOffset(uint32_t offset) {
return true;
}
std::string WaveReader::getFilename()
std::string WaveReader::getFilename() const
{
return fileDescriptor != STDIN_FILENO ? filename : "STDIN";
}
PCMWaveHeader WaveReader::getHeader()
PCMWaveHeader WaveReader::getHeader() const
{
return header;
}

Wyświetl plik

@ -42,13 +42,13 @@
class WaveReader
{
public:
WaveReader(std::string filename, bool &continueFlag);
WaveReader(const std::string &filename, bool &continueFlag);
virtual ~WaveReader();
WaveReader(const WaveReader &) = delete;
WaveReader(WaveReader &&) = delete;
WaveReader &operator=(const WaveReader &) = delete;
std::string getFilename();
PCMWaveHeader getHeader();
std::string getFilename() const;
PCMWaveHeader getHeader() const;
std::vector<Sample> getSamples(uint32_t quantity, bool &continueFlag);
bool setSampleOffset(uint32_t offset);
private: