Improvement off code by cuesheet servicemp3
authorchristophecvr <stefansat@telenet.be>
Sat, 25 Jul 2015 09:33:13 +0000 (11:33 +0200)
committerchristophecvr <stefansat@telenet.be>
Sat, 25 Jul 2015 09:33:13 +0000 (11:33 +0200)
As discused with mirakels, code improvement for
loadCuesheet() and saveCuesheet()

modified:   lib/service/servicemp3.cpp

lib/service/servicemp3.cpp

index 38780d3..2d7c4bd 100644 (file)
@@ -2806,6 +2806,12 @@ void eServiceMP3::loadCuesheet()
                eDebug("[eServiceMP3] loading cuesheet");
                m_cuesheet_loaded = true;
        }
+       else
+       {
+               eDebug("[eServiceMP3] skip loading cuesheet multiple times");
+               return;
+       }
        m_cue_entries.clear();
        /* only load manual cuts if no chapter info avbl CVR */
 #if GST_VERSION_MAJOR >= 1
@@ -2861,24 +2867,20 @@ void eServiceMP3::saveCuesheet()
        if ((::access(filename.c_str(), R_OK) < 0) || m_use_chapter_entries)
                return;
 #endif
+       filename.append(".cuts");
        /* do not save to file if there are no cuts */
-       gboolean empty_cue = FALSE;
+       /* remove the cuts file if cue is empty */
        if(m_cue_entries.begin() == m_cue_entries.end())
-               empty_cue = TRUE;
-
-       filename.append(".cuts");
+       {
+               if (::access(filename.c_str(), F_OK) == 0)
+                       remove(filename.c_str());
+               return;
+       }
 
        FILE *f = fopen(filename.c_str(), "wb");
 
        if (f)
        {
-               /* remove the cuts file if cue is empty */
-               if(empty_cue)
-               {
-                       fclose(f);
-                       remove(filename.c_str());
-                       return;
-               }
                unsigned long long where;
                int what;