aboutsummaryrefslogtreecommitdiff
path: root/Src/Plugins/Library/ml_disc/medium.cpp
diff options
context:
space:
mode:
authorJean-Francois Mauguit <jfmauguit@mac.com>2024-09-24 09:03:25 -0400
committerGitHub <noreply@github.com>2024-09-24 09:03:25 -0400
commitbab614c421ed7ae329d26bf028c4a3b1d2450f5a (patch)
tree12f17f78986871dd2cfb0a56e5e93b545c1ae0d0 /Src/Plugins/Library/ml_disc/medium.cpp
parent4bde6044fddf053f31795b9eaccdd2a5a527d21f (diff)
parent20d28e80a5c861a9d5f449ea911ab75b4f37ad0d (diff)
downloadwinamp-bab614c421ed7ae329d26bf028c4a3b1d2450f5a.tar.gz
Merge pull request #5 from WinampDesktop/community
Merge to main
Diffstat (limited to 'Src/Plugins/Library/ml_disc/medium.cpp')
-rw-r--r--Src/Plugins/Library/ml_disc/medium.cpp136
1 files changed, 136 insertions, 0 deletions
diff --git a/Src/Plugins/Library/ml_disc/medium.cpp b/Src/Plugins/Library/ml_disc/medium.cpp
new file mode 100644
index 00000000..38bfd259
--- /dev/null
+++ b/Src/Plugins/Library/ml_disc/medium.cpp
@@ -0,0 +1,136 @@
+#include "./main.h"
+#include "./medium.h"
+#include "./drive.h"
+#include "./resource.h"
+//#include <primosdk.h>
+
+static int pType[] =
+{
+ IDS_STAMPED_DISC_OR_RECORDABLE_THAT_HAS_BEEN_RECORDED,
+ IDS_REWRITEABLE_DISC_HAS_DATA_BUT_KEPT_OPEN_FOR_APPEND,
+ IDS_REWRITEABLE_DISC_NOT_POSSIBLE_TO_APPEND_DATA,
+ IDS_BLANK_REWRITEABLE_DISC,
+};
+
+static int pFormat[] =
+{
+ IDS_MEDIA_BLANK_DISC,
+ IDS_MEDIA_DATA_MODE_1_DAO,
+ IDS_MEDIA_KODAK_PHOTO_CD,
+ IDS_MEDIA_DATA_MULTISESSION_MODE_1_CLOSED,
+ IDS_MEDIA_DATA_MULTISESSION_MODE_2_CLOSED,
+ IDS_MEDIA_DATA_MODE_2_DAO,
+ IDS_MEDIA_CDRFS,
+ IDS_MEDIA_PACKET_WRITING,
+ IDS_MEDIA_DATA_MULTISESSION_MODE_1_OPEN,
+ IDS_MEDIA_DATA_MULTISESSION_MODE_2_OPEN,
+ IDS_MEDIA_AUDIO_DAO_SAO_TAO,
+ IDS_MEDIA_AUDIO_REWRITEABLE_DISC_WITH_SESSION_NOT_CLOSED,
+ IDS_MEDIA_FIRST_TYPE_OF_ENHANCED_CD_ABORTED,
+ IDS_MEDIA_CD_EXTRA,
+ IDS_MEDIA_AUDIO_TAO_WITH_SESSION_NOT_WRITTEN,
+ IDS_MEDIA_FIRST_TRACK_DATA_OTHERS_AUDIO,
+ IDS_MEDIA_MIXED_MODE_MADE_TAO,
+ IDS_MEDIA_KODAK_PORTFOLIO,
+ IDS_MEDIA_VIDEO_CD,
+ IDS_MEDIA_CDi,
+ IDS_MEDIA_PLAYSTATION_SONY_GAMES,
+ IDS_MEDIA_OBSOLETE,
+ IDS_MEDIA_OBSOLETE_FOR_RESTRICTED_OVERWRITE_DVD,
+ IDS_MEDIA_DVDROM_OR_CLOSED_RECORDABLE,
+ IDS_MEDIA_INCREMENTAL_DVD_WITH_APPENDABLE_ZONE,
+ IDS_MEDIA_APPENDABLE_DVD_OF_ANY_TYPE,
+ IDS_MEDIA_DVDRAM_CARTRIDGE,
+ IDS_MEDIA_CD_OTHER_TYPE,
+};
+
+static wchar_t buffer[256];
+
+LPCWSTR Medium_GetTypeString(DWORD nType)
+{
+ int index = -1;
+#if 0
+ switch(nType)
+ {
+ case PRIMOSDK_SILVER: index = 0; break;
+ case PRIMOSDK_COMPLIANTGOLD: index = 1; break;
+ case PRIMOSDK_OTHERGOLD: index = 2; break;
+ case PRIMOSDK_BLANK: index = 3; break;
+ }
+#endif
+ return WASABI_API_LNGSTRINGW_BUF((-1 != index) ? pType[index] : IDS_UNKNOWN, buffer,
+ sizeof(buffer)/sizeof(wchar_t));
+}
+
+LPCWSTR Medium_GetPhysicalTypeString(DWORD nType)
+{
+ return Drive_GetTypeString(nType);
+}
+
+LPCWSTR Medium_GetFormatString(DWORD nFormat)
+{
+ int index = -1;
+#if 0
+ switch(nFormat)
+ {
+ case PRIMOSDK_B1: index = 0; break;
+ case PRIMOSDK_D1: index = 1; break;
+ case PRIMOSDK_D2: index = 2; break;
+ case PRIMOSDK_D3: index = 3; break;
+ case PRIMOSDK_D4: index = 4; break;
+ case PRIMOSDK_D5: index = 5; break;
+ case PRIMOSDK_D6: index = 6; break;
+ case PRIMOSDK_D7: index = 7; break;
+ case PRIMOSDK_D8: index = 8; break;
+ case PRIMOSDK_D9: index = 9; break;
+ case PRIMOSDK_A1: index = 10; break;
+ case PRIMOSDK_A2: index = 11; break;
+ case PRIMOSDK_A3: index = 12; break;
+ case PRIMOSDK_A4: index = 13; break;
+ case PRIMOSDK_A5: index = 14; break;
+ case PRIMOSDK_M1: index = 15; break;
+ case PRIMOSDK_M2: index = 16; break;
+ case PRIMOSDK_M3: index = 17; break;
+ case PRIMOSDK_M4: index = 18; break;
+ case PRIMOSDK_M5: index = 19; break;
+ case PRIMOSDK_M6: index = 20; break;
+ case PRIMOSDK_F1: index = 21; break;
+ case PRIMOSDK_F2: index = 22; break;
+ case PRIMOSDK_F3: index = 23; break;
+ case PRIMOSDK_F4: index = 24; break;
+ case PRIMOSDK_F8: index = 25; break;
+ case PRIMOSDK_FA: index = 26; break;
+ case PRIMOSDK_GENERICCD: index = 27; break;
+ }
+#endif
+ return WASABI_API_LNGSTRINGW_BUF((-1 != index) ? pFormat[index] : IDS_UNKNOWN, buffer,
+ sizeof(buffer)/sizeof(wchar_t));
+}
+
+BOOL Medium_IsRecordableType(DWORD nType)
+{
+ #if 0
+ return (PRIMOSDK_COMPLIANTGOLD == nType || PRIMOSDK_BLANK == nType);
+#else
+ return FALSE;
+#endif
+}
+
+BOOL Medium_IsRecordable(CHAR cLetter)
+{
+ wchar_t info[128] = {0};
+ wchar_t name[] = L"cda://X.cda";
+ DWORD result;
+ BOOL reloaded = FALSE;
+
+ name[6] = cLetter;
+
+ for(;;)
+ {
+ result = getFileInfoW(name, L"cdtype", info, sizeof(info)/sizeof(wchar_t));
+ if (result || reloaded || !getFileInfoW(name, L"reloadsonic", NULL, 0)) break;
+ reloaded = TRUE;
+ }
+
+ return (result) ? (!lstrcmpW(info, L"CDR") || !lstrcmpW(info, L"CDRW")) : FALSE;
+} \ No newline at end of file