« on: March 18, 2008, 11:16:56 pm »
I am using the sources from charonmedia.
I am trying to compile this on 710b3.
I have previously tried compiling the source on 7.04, but recieved a plhetora of errors during the build script. Alot of missing files/folders, then an unknown user errors when connecting to the database, I can go on and on.
Needless to say, I managed to get the majority of the source to compile errorless on 710b3.
My initial reason for recompiling MythTV_Plugin was to remove the statically set options for interlacing and vsyncing. I tried compiling the plugin with and without my mods.
When I run make from the build script, or from the source folder /trun/src/MythTV_Plugin, I receive the same error.
This is the error.
MythTV_PlugIn.cpp:896: error: SCREEN_PVR_CONST was not declared in this scope
MythTV_PlugIn.cpp:897: error: SCREEN_PvrFullScreen_CONST was not declared in this scope
MythTV_PlugIn.cpp:901: error: SCREEN_mnuPVRRecording_CONST was not declared in this scope
MythTV_PlugIn.cpp:902: error: SCREEN_mnuPVRRecording_Full_Screen_CONST was not declared in this scope
MythTV_PlugIn.cpp:906: error: SCREEN_mnuPVROSD_CONST was not declared in this scope
MythTV_PlugIn.cpp:907: error: SCREEN_mnuPVR_OSD_Full_Screen_CONST was not declared in this scope
Initially, I found the file those constants were being declared in, /trunk/src/pluto_main/Define_Screen.h, and added the declarations manually. The plugin then compiled fine, but when I inserted it into my lmce box and rebooted, everything worked fine except for one thing. The lmce interface would not dissapear with the right click of my go mouse. Nothing would cause it to dissapear, it was permanently affixed lol. So anyways...
With some inquiry in IRC, I found out the pluto_main is generated by sql2cpp which in turns gets all it's information from you currently running database. After making sure sql2cpp wasn't screwed up, I proceeded to see what is so different from my database versus those who are compiling fine. Well since I didn't have a copy of someone elses database, I decided to install a vanilla install in a virtual machine. Using the same 710b3 version. I put the charonmedia source on it, but it would not make it through the build script, kept giving me errors. So instead, I went to my production box's database and searched for the constant "mnuPVRRecording" (the SCREEN_ prefix and _CONST suffix are not included in the database, these are added by sql2cpp). I found one table with mnuPVRRecording in my production database. It was in pluto_main -> DesignObj field. I did the same search on my virtual machine's vanilla install and had the identical results. So I ask myself "it's there in the database so why isn't it being put in the Define_Screen.h by sql2cpp?" At this point, I wanted to see what a working constant define looks like in the database. So I open Define_Screen.h and pick a constant that the compiler doesn't complain about and search for it, I chose "SensorsNotReady". After searching for this in the database, I found it existed in TWO fields instead of just ONE like the other. This one was found in pluto_main -> DesignObj and pluto_main -> Screen tables.
I search for another constant from Define_Screen.h, and sure enough I saw the trend, every single constant the compiler errors out with is missing an entry in the pluto_main -> Screen table, the ones that work fine ARE in this field. The vanilla install of 710b3 was identical. I haven't tried 710b4 yet. I installed 7.04 in a virual machine, and searched for the problematic constant from earlier, and in 7.04's database it shows up in both fields. Problem is, I can't get charonmedia sources to compile from my 7.04 copy.
When I originally downloaded the charonmedia sources, the build script installed all the needed packages, and appeared to run without show-stopping errors just warning... and it did proceed to compile all the binaries it could. This was on a vanilla 710b3 install about 1 month ago.
When I downloaded the caronmedia sources last week onto my 7.04 box, and ran the included build script, it would download and install the needed packages, but then error out on me when trying to do the sql stuff, says the /etc/init.d/mysql-build-mce is missing, so I find it and place it there, and yet another error about a directory missing, so I found it, placed it there, and yet more errors relating to the sql stuff, so I gave up.
Any ideas or suggestions?
My main goal is to just get MythTV_Plugin compiled. And in fact, if anyone here can compile it under amd64 system with the following lines REMOVED... and provide me the resulting binary and .so file. I usually don't ask for handouts, but this is such a simple mod, with such a show-stopping wall of not being able to compile this, even without the mod. Anyone got 5mins for this?
This will allow for those rare people who don't want English to use whatever is available instead of being forced English. It will also enable me to choose my own interlacing options instead of being statically forced to use what they (whoever they is) thought we all should be using, not to mention being able to choose decoder as well.
I actually recommend doing this for future releases, or if it is needed for some odd reason, if there is a way to implement a "run once" feature so that Mythtv will retain those defaults after setting them once, and if the user wants to experiment, it's already been run and won't overwrite the users settings on reboot/restart of the plugin.