annotate foosdk/sdk/foobar2000/SDK/foobar2000-versions.h @ 1:20d02a178406 default tip

*: check in everything else yay
author Paper <paper@tflc.us>
date Mon, 05 Jan 2026 02:15:46 -0500
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1 #pragma once
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2 // foobar2000-versions.h
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3 // foobar2000 SDK version and target API levels are declared in this header
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5 #ifdef _WIN32
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6 // Windows
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8 // This SDK does NOT SUPPORT targets older than API 80 / foobar2000 v1.5
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9 #define FOOBAR2000_TARGET_VERSION 80 // 1.5, 1.6
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
10 // #define FOOBAR2000_TARGET_VERSION 81 // 2.0
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
11
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
12
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
13 #ifdef _M_IX86
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
14 #define FOOBAR2000_TARGET_VERSION_COMPATIBLE 72
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
15 #else
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
16 // x64 & ARM64 targets
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
17 // Allow components made with special foobar2000 v1.6 SDK with x64 & ARM64 targets
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
18 #define FOOBAR2000_TARGET_VERSION_COMPATIBLE 80
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
19 #endif
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
20
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
21
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
22 #else // _WIN32
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
23 // Not Windows
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
24 #define FOOBAR2000_TARGET_VERSION 81
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
25 #define FOOBAR2000_TARGET_VERSION_COMPATIBLE 81
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
26 #endif // _WIN32
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
27
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
28 // Can safely use foobar2000 v2.0 features?
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
29 #define FOOBAR2020 (FOOBAR2000_TARGET_VERSION>=81)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
30
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
31
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
32 // Use this to determine what foobar2000 SDK version is in use, undefined for releases older than 2018
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
33 #define FOOBAR2000_SDK_VERSION 20241203
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
34
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
35 // cfg_var downgrade support, experimental, intended for specific components only.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
36 // Allows new style configStore data to be imported back to old foobar2000 friendly cfg_vars.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
37 // Intended to retain config when reverting FOOBAR2000_TARGET_VERSION value of 81 or newer to 80.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
38 // Takes effect with FOOBAR2000_TARGET_VERSION 80 only.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
39 // Place FOOBAR2000_IMPLEMENT_CFG_VAR_DOWNGRADE somewhere in your code to declare init calls for cfg_var downgrade. Or, if you wish to call manually, call cfg_var_reader::downgrade_main() before accessing your cfg_vars.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
40 // Spurious calls to cfg_var_reader::downgrade_main() will be ignored, only first one will take effect.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
41 #define FOOBAR2000_SUPPORT_CFG_VAR_DOWNGRADE 0