Second and last part of the icon indicator work.

This commit is contained in:
OBattler
2025-07-23 15:53:34 +02:00
parent c5681d8ba9
commit 9063bbe68b
31 changed files with 362 additions and 222 deletions

View File

@@ -152,10 +152,11 @@ pc_cas_del(pc_cassette_t *cas)
}
int
pc_cas_set_fname(pc_cassette_t *cas, const char *fname)
pc_cas_set_fname(pc_cassette_t *cas, char *fname)
{
unsigned n;
const char *ext;
int offs = 0;
if (cas->close)
fclose(cas->fp);
@@ -176,6 +177,13 @@ pc_cas_set_fname(pc_cassette_t *cas, const char *fname)
return 0;
}
if (strstr(fname, "wp://") == fname) {
offs = 5;
cassette_ui_writeprot = 1;
}
fname += offs;
cas->fp = plat_fopen(fname, "r+b");
if (cas->fp == NULL)
@@ -197,10 +205,10 @@ pc_cas_set_fname(pc_cassette_t *cas, const char *fname)
n = strlen(fname);
cas->fname = malloc((n + 1) * sizeof(char));
cas->fname = malloc((n + offs + 1) * sizeof(char));
if (cas->fname != NULL)
memcpy(cas->fname, fname, (n + 1) * sizeof(char));
memcpy(cas->fname, fname - offs, (n + offs + 1) * sizeof(char));
if (n > 4) {
ext = fname + (n - 4);
@@ -216,6 +224,8 @@ pc_cas_set_fname(pc_cassette_t *cas, const char *fname)
pc_cas_set_pcm(cas, 0);
}
ui_sb_update_icon_wp(SB_CASSETTE, cassette_ui_writeprot);
return 0;
}