Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package ft2-clone for openSUSE:Factory 
checked in at 2026-09-21 12:24:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ft2-clone (Old)
 and      /work/SRC/openSUSE:Factory/.ft2-clone.new.383539 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ft2-clone"

Mon Sep 21 12:24:29 2026 rev:47 rq:1378831 version:2.24

Changes:
--------
--- /work/SRC/openSUSE:Factory/ft2-clone/ft2-clone.changes      2026-09-04 
12:39:03.620740099 +0200
+++ /work/SRC/openSUSE:Factory/.ft2-clone.new.383539/ft2-clone.changes  
2026-09-21 12:24:32.978627782 +0200
@@ -1,0 +2,13 @@
+Fri Sep 18 06:07:09 UTC 2026 - Martin Hauke <[email protected]>
+
+- Update to version 2.24
+  * Some raw samples would be misdetected as an SNES BRR sample on
+    load. Also reduced the chance of raw samples being misdetected
+    as MP3/OGG/FLAC, although this was extremely unlikely to begin
+    with.
+  * Smp.Ed.: The filter preview didn't work as expected on looping
+    waveforms.
+  * Smp.Ed.: The filter preview duration has been lowered to 1
+    second.
+
+-------------------------------------------------------------------

Old:
----
  ft2-clone-2.23.tar.gz

New:
----
  ft2-clone-2.24.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ft2-clone.spec ++++++
--- /var/tmp/diff_new_pack.Zae5mS/_old  2026-09-21 12:24:34.343684834 +0200
+++ /var/tmp/diff_new_pack.Zae5mS/_new  2026-09-21 12:24:34.345684917 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           ft2-clone
-Version:        2.23
+Version:        2.24
 Release:        0
 Summary:        Fasttracker II clone
 License:        BSD-3-Clause AND CC-BY-NC-SA-4.0

++++++ ft2-clone-2.23.tar.gz -> ft2-clone-2.24.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ft2-clone-2.23/.gitignore 
new/ft2-clone-2.24/.gitignore
--- old/ft2-clone-2.23/.gitignore       2026-08-23 12:26:06.000000000 +0200
+++ new/ft2-clone-2.24/.gitignore       2026-09-17 17:22:53.000000000 +0200
@@ -1,10 +1,10 @@
-
+.DS_Store
+release/macos/ft2-clone-macos.app/Contents/MacOS/ft2-clone-macos
 vs2026_project/.vs/*
 vs2026_project/enc_temp_folder/*
 vs2026_project/ft2-clone/Release/*
-vs2026_project/ft2-clone/x64/Debug/ft2-clone.vcxproj.FileListAbsolute.txt
 vs2026_project/ft2-clone/Debug/*
-.DS_Store
+vs2026_project/ft2-clone/x64/*
 *.exe
 *.db
 *.ilk
@@ -23,4 +23,3 @@
 *.recipe
 *.iobj
 *.enc
-release/macos/ft2-clone-macos.app/Contents/MacOS/ft2-clone-macos
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ft2-clone-2.23/src/ft2_header.h 
new/ft2-clone-2.24/src/ft2_header.h
--- old/ft2-clone-2.23/src/ft2_header.h 2026-08-23 12:26:06.000000000 +0200
+++ new/ft2-clone-2.24/src/ft2_header.h 2026-09-17 17:22:53.000000000 +0200
@@ -14,7 +14,7 @@
 #endif
 #include "ft2_replayer.h"
 
-#define PROG_VER_STR "2.23"
+#define PROG_VER_STR "2.24"
 
 // do NOT change these! It will only mess things up...
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ft2-clone-2.23/src/ft2_sample_loader.c 
new/ft2-clone-2.24/src/ft2_sample_loader.c
--- old/ft2-clone-2.23/src/ft2_sample_loader.c  2026-08-23 12:26:06.000000000 
+0200
+++ new/ft2-clone-2.24/src/ft2_sample_loader.c  2026-09-17 17:22:53.000000000 
+0200
@@ -16,16 +16,16 @@
 #include "ft2_diskop.h"
 #include "ft2_structs.h"
 
-bool detectFLAC(FILE *f);
+bool detectFLAC(FILE *f, UNICHAR *filenameU, uint32_t filenameLen);
 bool loadFLAC(FILE *f, uint32_t filesize);
 
-bool detectOGG(FILE *f);
+bool detectOGG(FILE *f, UNICHAR *filenameU, uint32_t filenameLen);
 bool loadOGG(FILE *f, uint32_t filesize);
 
-bool detectMP3(FILE *f);
+bool detectMP3(FILE *f, UNICHAR *filenameU, uint32_t filenameLen);
 bool loadMP3(FILE *f, uint32_t filesize);
 
-bool detectBRR(FILE *f);
+bool detectBRR(FILE *f, UNICHAR *filenameU, uint32_t filenameLen);
 bool loadBRR(FILE *f, uint32_t filesize);
 
 bool loadAIFF(FILE *f, uint32_t filesize);
@@ -67,7 +67,7 @@
 static void freeTmpSample(sample_t *s);
 
 // Crude sample detection routine. These aren't always accurate detections!
-static int8_t detectSample(FILE *f)
+static int8_t detectSample(FILE *f, UNICHAR *filenameU, uint32_t filenameLen)
 {
        uint8_t D[512];
 
@@ -77,13 +77,13 @@
        fread(D, 1, sizeof (D), f);
        fseek(f, oldPos, SEEK_SET);
 
-       if (detectFLAC(f))
+       if (detectFLAC(f, filenameU, filenameLen))
                return FORMAT_FLAC;
 
-       if (detectOGG(f))
+       if (detectOGG(f, filenameU, filenameLen))
                return FORMAT_OGG;
 
-       if (detectMP3(f))
+       if (detectMP3(f, filenameU, filenameLen))
                return FORMAT_MP3;
 
        if (!memcmp("FORM", &D[0], 4) && (!memcmp("8SVX", &D[8], 4) || 
!memcmp("16SV", &D[8], 4)))
@@ -95,7 +95,7 @@
        if (!memcmp("FORM", &D[0], 4) && (!memcmp("AIFF", &D[8], 4) || 
!memcmp("AIFC", &D[8], 4)))
                return FORMAT_AIFF;
 
-       if (detectBRR(f))
+       if (detectBRR(f, filenameU, filenameLen))
                return FORMAT_BRR;
 
        return FORMAT_UNKNOWN;
@@ -116,7 +116,7 @@
                goto loadError;
        }
 
-       int8_t format = detectSample(f);
+       int8_t format = detectSample(f, editor.tmpFilenameU, 
UNICHAR_STRLEN(editor.tmpFilenameU));
        fseek(f, 0, SEEK_END);
        uint32_t filesize = ftell(f);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ft2-clone-2.23/src/ft2_smpfx.c 
new/ft2-clone-2.24/src/ft2_smpfx.c
--- old/ft2-clone-2.23/src/ft2_smpfx.c  2026-08-23 12:26:06.000000000 +0200
+++ new/ft2-clone-2.24/src/ft2_smpfx.c  2026-09-17 17:22:53.000000000 +0200
@@ -758,7 +758,11 @@
        s->origDataPtr = sampleData;
        s->length = len;
        s->dataPtr = s->origDataPtr + SMP_DAT_OFFSET;
-       s->loopStart = s->loopLength = 0;
+       if (smpEd_Rx1 < smpEd_Rx2) // disable loop if previewing marked section
+       {
+               s->loopStart = 0;
+               s->loopLength = 0;
+       }
        fixSample(s);
 
        const int32_t oldX1 = smpEd_Rx1;
@@ -784,7 +788,7 @@
        updateVolPanAutoVib(ch);
 
        while (ch->status & CS_TRIGGER_VOICE); // wait for voice to trigger in 
mixer
-       SDL_Delay(1500); // wait 1.5 seconds
+       SDL_Delay(1000); // wait 1 second
 
        // we're done, stop voice and free temporary data
        pauseAudio();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ft2-clone-2.23/src/ft2_unicode.h 
new/ft2-clone-2.24/src/ft2_unicode.h
--- old/ft2-clone-2.23/src/ft2_unicode.h        2026-08-23 12:26:06.000000000 
+0200
+++ new/ft2-clone-2.24/src/ft2_unicode.h        2026-09-17 17:22:53.000000000 
+0200
@@ -15,6 +15,7 @@
 #define UNICHAR_STRCPY(a, b) wcscpy(a, b)
 #define UNICHAR_STRNCPY(a, b, c) wcsncpy(a, b, c)
 #define UNICHAR_STRCMP(a, b) wcscmp(a, b)
+#define UNICHAR_STRICMP(a, b) _wcsicmp(a, b)
 #define UNICHAR_STRNCMP(a, b, c) wcsncmp(a, b, c)
 #define UNICHAR_STRCAT(a, b) wcscat(a, b)
 #define UNICHAR_STRDUP(a) _wcsdup(a)
@@ -31,6 +32,7 @@
 #define UNICHAR_STRCPY(a, b) strcpy(a, b)
 #define UNICHAR_STRNCPY(a, b, c) strncpy(a, b, c)
 #define UNICHAR_STRCMP(a, b) strcmp(a, b)
+#define UNICHAR_STRICMP(a, b) strcasecmp(a, b)
 #define UNICHAR_STRNCMP(a, b, c) strncmp(a, b, c)
 #define UNICHAR_STRCAT(a, b) strcat(a, b)
 #define UNICHAR_STRDUP(a) strdup(a)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ft2-clone-2.23/src/smploaders/ft2_load_brr.c 
new/ft2-clone-2.24/src/smploaders/ft2_load_brr.c
--- old/ft2-clone-2.23/src/smploaders/ft2_load_brr.c    2026-08-23 
12:26:06.000000000 +0200
+++ new/ft2-clone-2.24/src/smploaders/ft2_load_brr.c    2026-09-17 
17:22:53.000000000 +0200
@@ -17,11 +17,21 @@
 
 static int16_t s1, s2;
 
-bool detectBRR(FILE *f)
+bool detectBRR(FILE *f, UNICHAR *filenameU, uint32_t filenameLen)
 {
        if (f == NULL)
                return false;
 
+       // test for .brr file extension (format detection is otherwise quite 
poor)
+       UNICHAR *testExt;
+#ifdef _WIN32
+       testExt = L".brr";
+#else
+       testExt = ".brr";
+#endif
+       if (filenameLen <= 4 || UNICHAR_STRICMP(&filenameU[filenameLen-4], 
testExt) != 0)
+               return false;
+
        uint32_t oldPos = (uint32_t)ftell(f);
        fseek(f, 0, SEEK_END);
        uint32_t filesize = (uint32_t)ftell(f);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ft2-clone-2.23/src/smploaders/ft2_load_flac.c 
new/ft2-clone-2.24/src/smploaders/ft2_load_flac.c
--- old/ft2-clone-2.23/src/smploaders/ft2_load_flac.c   2026-08-23 
12:26:06.000000000 +0200
+++ new/ft2-clone-2.24/src/smploaders/ft2_load_flac.c   2026-09-17 
17:22:53.000000000 +0200
@@ -49,8 +49,18 @@
 
 static bool writeSamples(int64_t sampleIndex, int32_t **samples, int32_t 
numSamples);
 
-bool detectFLAC(FILE *f)
+bool detectFLAC(FILE *f, UNICHAR *filenameU, uint32_t filenameLen)
 {
+       // test for .flac file extension (format detection is otherwise quite 
poor)
+       UNICHAR *testExt;
+#ifdef _WIN32
+       testExt = L".flac";
+#else
+       testExt = ".flac";
+#endif
+       if (filenameLen <= 5 || UNICHAR_STRICMP(&filenameU[filenameLen-5], 
testExt) != 0)
+               return false;
+
        uint8_t h[4];
        memset(h, 0, sizeof (h));
        fread(h, 1, 4, f);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ft2-clone-2.23/src/smploaders/ft2_load_mp3.c 
new/ft2-clone-2.24/src/smploaders/ft2_load_mp3.c
--- old/ft2-clone-2.23/src/smploaders/ft2_load_mp3.c    2026-08-23 
12:26:06.000000000 +0200
+++ new/ft2-clone-2.24/src/smploaders/ft2_load_mp3.c    2026-09-17 
17:22:53.000000000 +0200
@@ -40,10 +40,19 @@
 
 static bool mp3IsStereo = true;
 
-bool detectMP3(FILE *f)
+bool detectMP3(FILE *f, UNICHAR *filenameU, uint32_t filenameLen)
 {
-       uint8_t h[10];
+       // test for .mp3 file extension (format detection is otherwise slightly 
poor)
+       UNICHAR *testExt;
+#ifdef _WIN32
+       testExt = L".mp3";
+#else
+       testExt = ".mp3";
+#endif
+       if (filenameLen <= 4 || UNICHAR_STRICMP(&filenameU[filenameLen-4], 
testExt) != 0)
+               return false;
 
+       uint8_t h[10];
        memset(h, 0, sizeof (h));
        fread(h, 1, 10, f);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ft2-clone-2.23/src/smploaders/ft2_load_ogg.c 
new/ft2-clone-2.24/src/smploaders/ft2_load_ogg.c
--- old/ft2-clone-2.23/src/smploaders/ft2_load_ogg.c    2026-08-23 
12:26:06.000000000 +0200
+++ new/ft2-clone-2.24/src/smploaders/ft2_load_ogg.c    2026-09-17 
17:22:53.000000000 +0200
@@ -47,8 +47,18 @@
 
 #define SAMPLE_BUFFER_SIZE 524208
 
-bool detectOGG(FILE *f)
+bool detectOGG(FILE *f, UNICHAR *filenameU, uint32_t filenameLen)
 {
+       // test for .ogg file extension (format detection is otherwise quite 
poor)
+       UNICHAR *testExt;
+#ifdef _WIN32
+       testExt = L".ogg";
+#else
+       testExt = ".ogg";
+#endif
+       if (filenameLen <= 4 || UNICHAR_STRICMP(&filenameU[filenameLen-4], 
testExt) != 0)
+               return false;
+
        uint8_t h[4];
        memset(h, 0, sizeof (h));
        fread(h, 1, 4, f);

Reply via email to