@ -20,11 +20,14 @@
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
//
# include <circle/logger.h>
# include "performanceconfig.h"
# include "mididevice.h"
# include <cstring>
# include <algorithm>
LOGMODULE ( " Performance " ) ;
CPerformanceConfig : : CPerformanceConfig ( FATFS * pFileSystem )
: m_Properties ( " performance.ini " , pFileSystem )
{
@ -747,8 +750,27 @@ bool CPerformanceConfig::GetInternalFolderOk()
return nInternalFolderOk ;
}
bool CPerformanceConfig : : CheckFreePerformanceSlot ( void )
{
if ( nLastPerformance < NUM_PERFORMANCES )
{
// There is a free slot...
return true ;
}
else
{
return false ;
}
}
bool CPerformanceConfig : : CreateNewPerformanceFile ( void )
{
if ( nLastPerformance > = NUM_PERFORMANCES ) {
// No space left for new performances
LOGWARN ( " No space left for new performance " ) ;
return false ;
}
std : : string sPerformanceName = NewPerformanceName ;
NewPerformanceName = " " ;
nActualPerformance = nLastPerformance ;
@ -829,6 +851,9 @@ bool CPerformanceConfig::ListPerformances()
Result = f_findfirst ( & Directory , & FileInfo , " SD:/ " PERFORMANCE_DIR , " *.ini " ) ;
for ( unsigned i = 0 ; Result = = FR_OK & & FileInfo . fname [ 0 ] ; i + + )
{
if ( nLastPerformance > = NUM_PERFORMANCES ) {
LOGNOTE ( " Skipping performance %s " , FileInfo . fname ) ;
} else {
if ( ! ( FileInfo . fattrib & ( AM_HID | AM_SYS ) ) )
{
std : : string FileName = FileInfo . fname ;
@ -844,6 +869,7 @@ bool CPerformanceConfig::ListPerformances()
m_nPerformanceFileName [ nLastPerformance + + ] = FileName ;
}
}
}
Result = f_findnext ( & Directory , & FileInfo ) ;
}
@ -854,6 +880,8 @@ bool CPerformanceConfig::ListPerformances()
}
}
LOGNOTE ( " Number of Performances: %d " , nLastPerformance ) ;
return nInternalFolderOk ;
}