SjExtList SjModuleSystem::GetAssignedExt(long flags) { SjExtList ret; // potentially playable files if( flags & SJ_EXT_MUSICFILES ) { ret.AddExt( "aac ac3 aif aiff ape asf au dts f4a fla flac " "m4a m4b mac mp+ mp1 mp2 mp3 mpa mpc mpp " "nsa ofr oga ogg opus shn snd spx tta wav wma wv ra " #if SJ_USE_VIDEO "3g2 3gp asx avi dv f4p f4v flv " "mjpg mkv mka mov m2t m2ts m2v m4v m4p mp4 mpg mpe mpeg mpv mts " "nsv ogm ogv ogx pva qt qtl rm rmvb trp ts vob wax webm wmv " #endif ); } // files types read along with the playable files if( flags & SJ_EXT_ARCHIVES ) { ret.AddExt("tar zip"); } if( flags & SJ_EXT_IMAGEFILES ) { ret.AddExt(m_imageExtList); } // other file types if( flags & SJ_EXT_PLAYLISTS_READ ) { ret.AddExt(m_playlistExtListRead); } if( flags & SJ_EXT_PLAYLISTS_WRITE ) { ret.AddExt(m_playlistExtListWrite); } return ret; }
// pass an uninitialized file object, the function will ask the user for the // filename and try to open it, returns true on success (file was opened), // false if file couldn't be opened/created and -1 if the file selection // dialog was cancelled int SjLogDialog::OpenLogFile(wxFile& file, wxString& retFilename) { SJ_WINDOW_DISABLER(this); // get the file name // ----------------- SjExtList extList; extList.AddExt(wxT("txt")); wxFileDialog dlg(this, _("Save"), wxT(""), wxT("log.txt"), extList.GetFileDlgStr(wxFD_SAVE), wxFD_SAVE|wxFD_CHANGE_DIR); if( dlg.ShowModal() != wxID_OK ) { return -1; } wxString filename = dlg.GetPath(); // open file // --------- bool bOk wxDUMMY_INITIALIZE(false); if ( wxFile::Exists(filename) ) { wxASSERT( wxYES != wxCANCEL ); wxASSERT( wxNO != wxCANCEL ); bool bAppend = false; switch( SjMessageBox(wxString::Format(_("Overwrite \"%s\"?"), filename.c_str()), SJ_PROGRAM_NAME, wxICON_QUESTION | wxYES_NO | wxCANCEL, this, NULL, NULL, _("Yes"), _("Append")) ) { case wxYES: bAppend = false; break; case wxNO: bAppend = true; break; default: return -1; } if ( bAppend ) { bOk = file.Open(filename, wxFile::write_append); } else { bOk = file.Create(filename, true /* overwrite */); } } else { bOk = file.Create(filename); } retFilename = filename; return bOk; }