Okay, so Mix_FadeInMusic() is still producing errors. I will update my Github repo shortly, and here are the current error messages that I am receiving:
g_audio_dats.c: In function 'audio_music_play': g_audio_dats.c:931:11: error: storage size of 'tmpref41' isn't known ATStmpdec(tmpref41, Mix_Music) ; ^~~~~~~~ /home/d4v3y/ATS2-Postiats-0.4.0/ccomp/runtime/pats_ccomp_instrset.h:209:33: note: in definition of macro 'ATStmpdec' #define ATStmpdec(tmp, hit) hit tmp ^~~ /home/d4v3y/ATS2-Postiats-0.4.0/ccomp/runtime/pats_ccomp_instrset.h:217:29: error: dereferencing pointer to incomplete type 'Mix_Music' {aka 'struct _Mix_Music'} #define ATSderef(pmv, hit) (*(hit*)pmv) /home/d4v3y/ATS2-Postiats-0.4.0/ccomp/runtime/pats_ccomp_instrset.h:276:37: note: in definition of macro 'ATSINSmove' #define ATSINSmove(tmp, val) (tmp = val) ^~~ g_audio_dats.c:960:22: note: in expansion of macro 'ATSSELrecsin' ATSINSmove(tmpref41, ATSSELrecsin(ATSderef(arg0, Mix_Music), Mix_Music, atslab__handle)) ; ^~~~~~~~~~~~ g_audio_dats.c:960:35: note: in expansion of macro 'ATSderef' ATSINSmove(tmpref41, ATSSELrecsin(ATSderef(arg0, Mix_Music), Mix_Music, atslab__handle)) ; ^~~~~~~~ make: *** [Makefile:63: obj/g_audio_dats.o] Error 1 Thank you for your help, and I will continue to investigate this issue. On Wednesday, April 29, 2020 at 8:39:26 PM UTC-4, d4v3y_5c0n3s wrote: > > Yea, so, the reason that the suggestion you had for Mix_GetError() wasn't > working for me was that in the function definition I put "... = > "mac#Mix_GetError"" at the end which was causing the macro to not apply to > the function. To fix this, I changed it to "... = "mac#%"", which caused > it to work without a hitch. I will see if the same issue is partially > behind the issue I am having with Mix_FadeInMusic(). > > On Wednesday, April 29, 2020 at 5:54:42 PM UTC-4, d4v3y_5c0n3s wrote: >> >> Actually, I think I've figured out (at least partially) what's wrong with >> my code. I will post my results once I get the opportunity to test my >> theory out. >> >> On Wednesday, April 29, 2020 at 7:31:27 AM UTC-4, d4v3y_5c0n3s wrote: >>> >>> So, I made the changes which you suggested, but unfortunately, this >>> didn't resolve the issues. First, I tried modifying the macro for >>> Mix_GetError() in the SDL_mixer.cats file to what you suggested, but this >>> didn't seem to change the error message. Perhaps I missed something, >>> because I don't have a solid understanding of more complex C macros. My >>> changes can be seen here: >>> https://github.com/d4v3y5c0n3s/Goldelish-Engine/blob/master/source/SDL2/SDL_local.cats >>> >>> Next, I tried modifying the function definition for >>> Mix_FadeInMusic() in SDL_mixer.sats to match your suggested modifacation, >>> but this didn't fix the issue. Your suggestion is actually how I had >>> previously written the function, but I had changed it while experimenting >>> to find the cause of the issue I was encountering. When I pushed my >>> changes to Github, I forgot to revert that function to what it had been >>> previously. My changes can be seen here: >>> https://github.com/d4v3y5c0n3s/Goldelish-Engine/blob/master/source/SDL2/SDL_mixer.sats >>> >>> I appreciate the help, so thank you. >>> >>> *Here are the errors which I am currently getting after incorporating >>> the changes you suggested:* >>> >>> In file included from g_audio_dats.c:15: >>> g_audio_dats.c: In function 'audio_sound_play': >>> /home/d4v3y/ATS2-Postiats-0.4.0/ccomp/runtime/pats_ccomp_instrset.h:276:35: >>> warning: assignment discards 'const' qualifier from pointer target type >>> [-Wdiscarded-qualifiers] >>> #define ATSINSmove(tmp, val) (tmp = val) >>> ^ >>> g_audio_dats.c:753:1: note: in expansion of macro 'ATSINSmove' >>> ATSINSmove(tmp36, Mix_GetError()) ; >>> ^~~~~~~~~~ >>> g_audio_dats.c: In function 'audio_music_play': >>> g_audio_dats.c:931:11: error: storage size of 'tmpref41' isn't known >>> ATStmpdec(tmpref41, Mix_Music) ; >>> ^~~~~~~~ >>> /home/d4v3y/ATS2-Postiats-0.4.0/ccomp/runtime/pats_ccomp_instrset.h:209:33: >>> note: in definition of macro 'ATStmpdec' >>> #define ATStmpdec(tmp, hit) hit tmp >>> ^~~ >>> /home/d4v3y/ATS2-Postiats-0.4.0/ccomp/runtime/pats_ccomp_instrset.h:217:29: >>> error: dereferencing pointer to incomplete type 'Mix_Music' {aka 'struct >>> _Mix_Music'} >>> #define ATSderef(pmv, hit) (*(hit*)pmv) >>> /home/d4v3y/ATS2-Postiats-0.4.0/ccomp/runtime/pats_ccomp_instrset.h:276:37: >>> note: in definition of macro 'ATSINSmove' >>> #define ATSINSmove(tmp, val) (tmp = val) >>> ^~~ >>> g_audio_dats.c:960:22: note: in expansion of macro 'ATSSELrecsin' >>> ATSINSmove(tmpref41, ATSSELrecsin(ATSderef(arg0, Mix_Music), Mix_Music, >>> atslab__handle)) ; >>> ^~~~~~~~~~~~ >>> g_audio_dats.c:960:35: note: in expansion of macro 'ATSderef' >>> ATSINSmove(tmpref41, ATSSELrecsin(ATSderef(arg0, Mix_Music), Mix_Music, >>> atslab__handle)) ; >>> ^~~~~~~~ >>> /home/d4v3y/ATS2-Postiats-0.4.0/ccomp/runtime/pats_ccomp_instrset.h:276:35: >>> warning: assignment discards 'const' qualifier from pointer target type >>> [-Wdiscarded-qualifiers] >>> #define ATSINSmove(tmp, val) (tmp = val) >>> ^ >>> g_audio_dats.c:999:1: note: in expansion of macro 'ATSINSmove' >>> ATSINSmove(tmp50, Mix_GetError()) ; >>> ^~~~~~~~~~ >>> make: *** [Makefile:63: obj/g_audio_dats.o] Error 1 >>> >>> >>> On Tuesday, April 28, 2020 at 2:26:04 PM UTC-4, gmhwxi wrote: >>>> >>>> >>Ever since my previous question, I've been running into two issues >>>> with my SDL_mixer bindings. The first, is that I get a warning message >>>> whenever I use the function Mix_GetError() (the definition for this >>>> function may be found here: >>>> https://github.com/d4v3y5c0n3s/Goldelish-Engine/blob/master/source/SDL2/SDL_mixer.sats). >>>> >>>> The warning is as follows: >>>> >>>> g_audio_dats.c: In function 'audio_sound_play': >>>> >>>> /home/d4v3y/ATS2-Postiats-0.4.0/ccomp/runtime/pats_ccomp_instrset.h:276:35: >>>> warning: >>>> assignment discards 'const' qualifier fr >>>> om pointer target type [-Wdiscarded-qualifiers] >>>> #define ATSINSmove(tmp, val) (tmp = val) >>>> >>>> While this is only a warning, I would still like to know what is going >>>> wrong here. I looked at ATS-contrib's SDL binding, and found that the >>>> SDL_GetError() function there had the exact same problem. (The file for >>>> this function definition may be found here: >>>> https://github.com/githwxi/ATS-Postiats-contrib/blob/master/contrib/SDL2/SATS/SDL_error.sats >>>> ) >>>> >>>> Here is my guess: >>>> >>>> Mx_GetError() returns a const string; but it is assigned to a variable >>>> (tmp) which is not declared to be a const. >>>> >>>> I did the following: >>>> >>>> #define atscntrb_SDL2_SDL_GetError SDL_GetError >>>> >>>> which should probably be changed to the following: >>>> >>>> #define atscntrb_SDL2_SDL_GetError() ((char*)(SDL_GetError())) >>>> >>>> so as to suppress warnings like the one you encountered. >>>> >>>> --Hongwei >>>> >>>> >>>> >>>> >>>> >>>> On Tue, Apr 28, 2020 at 6:59 AM d4v3y_5c0n3s <tmj...@gmail.com> wrote: >>>> >>>>> Ever since my previous question, I've been running into two >>>>> issues with my SDL_mixer bindings. The first, is that I get a warning >>>>> message whenever I use the function Mix_GetError() (the definition for >>>>> this >>>>> function may be found here: >>>>> https://github.com/d4v3y5c0n3s/Goldelish-Engine/blob/master/source/SDL2/SDL_mixer.sats). >>>>> >>>>> The warning is as follows: >>>>> >>>>> g_audio_dats.c: In function 'audio_sound_play': >>>>> >>>>> /home/d4v3y/ATS2-Postiats-0.4.0/ccomp/runtime/pats_ccomp_instrset.h:276:35: >>>>> warning: >>>>> assignment discards 'const' qualifier fr >>>>> om pointer target type [-Wdiscarded-qualifiers] >>>>> #define ATSINSmove(tmp, val) (tmp = val) >>>>> >>>>> While this is only a warning, I would still like to know what is going >>>>> wrong here. I looked at ATS-contrib's SDL binding, and found that the >>>>> SDL_GetError() function there had the exact same problem. (The file for >>>>> this function definition may be found here: >>>>> https://github.com/githwxi/ATS-Postiats-contrib/blob/master/contrib/SDL2/SATS/SDL_error.sats >>>>> ) >>>>> >>>>> The second issue that I'm running into has to do with my >>>>> Mix_FadeInMusic() function (which is defined here: >>>>> https://github.com/d4v3y5c0n3s/Goldelish-Engine/blob/master/source/SDL2/SDL_mixer.sats). >>>>> >>>>> When I use this function, I get the following error message: >>>>> >>>>> g_audio_dats.c: In function 'audio_music_play': >>>>> g_audio_dats.c:931:11: error: storage size of 'tmpref41' isn't known >>>>> ATStmpdec(tmpref41, Mix_Music) ; >>>>> ^~~~~~~~ >>>>> >>>>> /home/d4v3y/ATS2-Postiats-0.4.0/ccomp/runtime/pats_ccomp_instrset.h:209:33: >>>>> note: >>>>> in definition of macro 'ATStmpdec' >>>>> #define ATStmpdec(tmp, hit) hit tmp >>>>> ^~~ >>>>> >>>>> /home/d4v3y/ATS2-Postiats-0.4.0/ccomp/runtime/pats_ccomp_instrset.h:217:29: >>>>> error: >>>>> dereferencing pointer to incomplete type ' >>>>> Mix_Music' {aka 'struct _Mix_Music'} >>>>> #define ATSderef(pmv, hit) (*(hit*)pmv) >>>>> >>>>> >>>>> The file *where I've been receiving these errors* is available >>>>> here: >>>>> https://github.com/d4v3y5c0n3s/Goldelish-Engine/blob/master/source/g_audio.dats. >>>>> >>>>> My full source code is available on Github here: >>>>> https://github.com/d4v3y5c0n3s/Goldelish-Engine. >>>>> >>>>> Any help is appreciated, and if you'd like me to provide any more >>>>> information, please ask for it. Also, if anyone knows of a great >>>>> resource >>>>> for understanding how the internals of ATS work, please let me know. I >>>>> have a feeling that if I better understood how ATS worked, I would also >>>>> better understand what to do when I encounter error messages such as >>>>> these. >>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "ats-lang-users" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to ats-lan...@googlegroups.com. >>>>> To view this discussion on the web visit >>>>> https://groups.google.com/d/msgid/ats-lang-users/e3db4fac-0969-406f-aaa5-02b3b2145a84%40googlegroups.com >>>>> >>>>> <https://groups.google.com/d/msgid/ats-lang-users/e3db4fac-0969-406f-aaa5-02b3b2145a84%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>> . >>>>> >>>> -- You received this message because you are subscribed to the Google Groups "ats-lang-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to ats-lang-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/ats-lang-users/7e6469c2-d6da-4609-921e-fe12bf873d0f%40googlegroups.com.