diff --git a/daemon/src/audio/audiorecord.cpp b/daemon/src/audio/audiorecord.cpp index 54c4bb6918b3c350a90ba8a0e1c29c7f8281c990..af1f94ef161628194cdf32758e934acf33df402f 100644 --- a/daemon/src/audio/audiorecord.cpp +++ b/daemon/src/audio/audiorecord.cpp @@ -33,6 +33,7 @@ #include <sstream> // for stringstream #include <cstdio> #include "logger.h" +#include "fileutils.h" // structure for the wave header @@ -76,10 +77,22 @@ void AudioRecord::setSndSamplingRate(int smplRate) void AudioRecord::setRecordingOption(FILE_TYPE type, int sndSmplRate, const std::string &path) { + std::stringstream s; + std::string filePath; + + // use HOME directory if path is empty, nor does not exist + if(path.empty() || !fileutils::check_dir(path.c_str())) { + s << getenv("HOME"); + filePath = s.str(); + } + else { + filePath = path; + } + fileType_ = type; channels_ = 1; sndSmplRate_ = sndSmplRate; - savePath_ = path + "/"; + savePath_ = (*filePath.rbegin() == '/') ? filePath : filePath + "/"; } void AudioRecord::initFilename(const std::string &peerNumber) @@ -230,7 +243,7 @@ void AudioRecord::createFilename() out << timeinfo->tm_sec; filename_ = out.str(); - DEBUG("AudioRecord: create filename for this call %s ", filename_.c_str()); + DEBUG("AudioRecord: Generate filename for this call %s ", filename_.c_str()); } bool AudioRecord::setRawFile() diff --git a/daemon/src/audio/recordable.cpp b/daemon/src/audio/recordable.cpp index 72649412d5c723b2c096bfc10a2ddfa34e7475cf..7eda5bd661f1d8e24c8c092f8e0425ac8b0b5b37 100644 --- a/daemon/src/audio/recordable.cpp +++ b/daemon/src/audio/recordable.cpp @@ -29,9 +29,11 @@ #include "recordable.h" #include "manager.h" +#include "logger.h" Recordable::Recordable() : recAudio_(), recorder_(&recAudio_, Manager::instance().getMainBuffer()) { + DEBUG("=================== Set recornding options: %s", Manager::instance().audioPreference.getRecordpath().c_str()); recAudio_.setRecordingOption(AudioRecord::FILE_WAV, 8000, Manager::instance().audioPreference.getRecordpath()); } diff --git a/daemon/src/fileutils.cpp b/daemon/src/fileutils.cpp index 93829c7edfca32522e8fd46ef1e57736f8c70e3d..29376115950b5a2634ca44cd285c1a8af71b40c4 100644 --- a/daemon/src/fileutils.cpp +++ b/daemon/src/fileutils.cpp @@ -39,7 +39,7 @@ #include <iostream> #include "fileutils.h" -namespace { +namespace fileutils { // returns true if directory exists bool check_dir(const char *path) { @@ -55,9 +55,7 @@ bool check_dir(const char *path) return true; } -} -namespace fileutils { static char *program_dir = NULL; void set_program_dir(char *program_path) diff --git a/daemon/src/fileutils.h b/daemon/src/fileutils.h index 67bc019d6811b1e0a6225b6785cc22de0cc048fc..c513daed12d902efc88f53e81fa67ad865fe7c63 100644 --- a/daemon/src/fileutils.h +++ b/daemon/src/fileutils.h @@ -42,6 +42,7 @@ #define DIR_SEPARATOR_CH = '/' // Directory separator string namespace fileutils { + bool check_dir(const char *path); void set_program_dir(char *program_path); const char *get_program_dir(); bool create_pidfile();