2019-05-03 Fred Gleason <fredg@paravelsystems.com>

* Fixed a regression that broke audio importation in rdimport(1).
This commit is contained in:
Fred Gleason 2019-05-03 15:42:40 -04:00
parent bf0a19bf43
commit aa59fbb0f5
3 changed files with 16 additions and 12 deletions

View File

@ -18637,3 +18637,5 @@
Python 3.6.
2019-05-02 Fred Gleason <fredg@paravelsystems.com>
* Updated the package version to 3.0.0rc01.
2019-05-03 Fred Gleason <fredg@paravelsystems.com>
* Fixed a regression that broke audio importation in rdimport(1).

View File

@ -70,6 +70,7 @@ RDWaveFile::RDWaveFile(QString file_name)
//
// Initialize Class Structures
//
wave_file_name=file_name;
wave_file.setName(file_name);
wave_data=NULL;
recordable=false;
@ -213,6 +214,7 @@ void RDWaveFile::nameWave(QString file_name)
return;
}
wave_file.setName(file_name);
wave_file_name=file_name;
}
@ -226,13 +228,12 @@ bool RDWaveFile::openWave(RDWaveData *data)
int fd=-1;
wave_data=data;
if((fd=open(wave_file.name().toUtf8(),O_RDONLY))<0) {
if((fd=open(wave_file_name.toUtf8(),O_RDONLY))<0) {
return false;
}
if(!wave_file.open(fd,QIODevice::ReadOnly)) {
return false;
}
switch(GetType(wave_file.handle())) {
case RDWaveFile::Wave:
if(GetFmt(wave_file.handle())) {
@ -431,7 +432,7 @@ bool RDWaveFile::openWave(RDWaveData *data)
data_chunk=true;
format_chunk=true;
wave_type=RDWaveFile::Ogg;
ReadNormalizeLevel(wave_file.name());
ReadNormalizeLevel(wave_file_name);
ValidateMetadata();
return true;
#else
@ -553,7 +554,7 @@ bool RDWaveFile::createWave(RDWaveData *data,unsigned ptr_offset)
}
prev_mask = umask(0113); // Set umask so files are user and group writable.
rc=wave_file.open(QIODevice::ReadWrite|QIODevice::Truncate);
unlink((wave_file.name()+".energy").ascii());
unlink((wave_file_name+".energy").ascii());
umask(prev_mask);
if(rc==false) {
return false;
@ -914,7 +915,7 @@ void RDWaveFile::resetWave()
QString RDWaveFile::getName() const
{
return wave_file.name();
return wave_file_name;
}
@ -2443,7 +2444,7 @@ bool RDWaveFile::IsFlac(int fd)
#ifdef HAVE_FLAC
char buffer[5];
ID3_Tag id3_tag(Q3CString().sprintf("%s",(const char *)wave_file.name().utf8()));
ID3_Tag id3_tag(Q3CString().sprintf("%s",(const char *)wave_file_name.utf8()));
lseek(fd,id3_tag.GetPrependedBytes(),SEEK_SET);
if(read(fd,buffer,4)!=4) {
return false;
@ -3489,10 +3490,10 @@ void RDWaveFile::ReadId3Metadata()
return;
}
bool using_rdxl=false;
TagLib::FileRef tagref(wave_file.name().toUtf8());
TagLib::FileRef tagref(wave_file_name.toUtf8());
if(tagref.file()==NULL) { // Take another look with ID3Lib
ID3_Frame *frame=NULL;
ID3_Tag id3_tag(wave_file.name().toUtf8());
ID3_Tag id3_tag(wave_file_name.toUtf8());
if((frame=id3_tag.Find(ID3FID_USERTEXT,ID3FN_DESCRIPTION,"rdxl"))!=NULL) {
rdxl_contents=ID3_GetString(frame,ID3FN_TEXT);
if(wave_data!=NULL) {
@ -3516,7 +3517,7 @@ void RDWaveFile::ReadId3Metadata()
if(name==QString::fromUtf8("牤硬")) { // Mangled RD v2.x RDXL Frame
using_rdxl=true;
ID3_Frame *frame=NULL;
ID3_Tag id3_tag(wave_file.name().toUtf8());
ID3_Tag id3_tag(wave_file_name.toUtf8());
if((frame=id3_tag.Find(ID3FID_USERTEXT,ID3FN_DESCRIPTION,"rdxl"))!=NULL) {
rdxl_contents=ID3_GetString(frame,ID3FN_TEXT);
if(wave_data!=NULL) {
@ -4178,7 +4179,7 @@ bool RDWaveFile::GetFlacStreamInfo()
{
#if HAVE_FLAC
FLAC__StreamMetadata sinfo;
if(!FLAC__metadata_get_streaminfo(Q3CString().sprintf("%s",(const char *)wave_file.name().utf8()),&sinfo)) {
if(!FLAC__metadata_get_streaminfo(Q3CString().sprintf("%s",(const char *)wave_file_name.utf8()),&sinfo)) {
return false;
}
samples_per_sec=sinfo.data.stream_info.sample_rate;
@ -4201,7 +4202,7 @@ void RDWaveFile::ReadFlacMetadata()
QString composer;
FLAC__StreamMetadata* tags;
if(!FLAC__metadata_get_tags(Q3CString().
sprintf("%s",(const char *)wave_file.name().utf8()),&tags)) {
sprintf("%s",(const char *)wave_file_name.utf8()),&tags)) {
return;
}
for(unsigned iCommentIndex=0;
@ -4654,7 +4655,7 @@ void RDWaveFile::GetEnergy()
{
int file_ptr;
ReadEnergyFile(wave_file.name());
ReadEnergyFile(wave_file_name);
if(!levl_chunk) {
GetLevl(wave_file.handle());

View File

@ -1076,6 +1076,7 @@ class RDWaveFile
#endif // HAVE_VORBIS
int WriteOggBuffer(char *buf,int size);
unsigned FrameOffset(int msecs) const;
QString wave_file_name;
QFile wave_file;
RDWaveData *wave_data;
bool recordable; // Allow DATA chunk writes?