64bit/Help

From kJams Wiki
Jump to navigation Jump to search

Dock / Taskbar

You will find a reference app, kJams 2 (32bit). Run that and you'll see what we're trying to re-create in Qt. You'll also see Qt Creator, Perforce (P4V), and the command line (terminal or cmd.exe). I've also included the Qt Maintanance Tool, just in case an important update comes out during the time you're working on the project. Also preinstalled is the TeamViewer app so we can do screen sharing in case i need to poke around on your VM or show you how to do something.

General

Do not run the reference app and the app you're building at the same time, as they access the same database, and you could cause corruption.

After you have gotten preliminary database working, you'll want to turn on Music Stores. To do this, go to kJams->preferences->stores, and check the box above the three music stores, then quit and re-run the app. It will then ask to download the music stores. Note these may or may NOT be shown in the Library playlist. Even if they are, they should not be stored within the Library database, or if they are, then they should auto-purge if you run kJams and the corresponding music store's xml file is gone (ie: the user should be free to delete the xml file between runs, and have that reflect when they next run). Also, when a music store gets an update, it must be done in such a way that new meta data for an existing song updates the existing song, that no NEW song (with a new ID) is generated (code already exists, must be checked and thoroughly tested). It is okay to lose song IDs if the user manually turns off stores, or throws out store xmls. A song who's ID is in a music store that is turned off is expected to "just disappear" from all playlists. It's fine to require a restart of the app for this.

In the file system, in your user's Music folder, is the kJams folder. Inside that you'll see "kJams Library" which is a shortcut / alias (henceforth called "alias"). The existing alias points to "kJams Library (small)". This is a small library (of real songs that you can play) to get you started with some data. Later when you're ready to test importing a very large library, delete this alias, and make a new alias from "kJams Library (monster)". Rename the alias to be only "kJams Library", then launch kJams, which should now pick up the monster library.

Qt Creator

When you open Qt Creator, you'll see 2 pre-installed "sessions":

First is "CFTest", the app does unit-tests for CoreFoundation (CFLite / CFNetwork). This is useful if you happen to need to work on CF for some reason (you probably won't, but if you're not completely familiar with CF, this will really help you understand what it is capable of). This comes with debug and release configurations.

Second is "kJams" itself. kJams can build three editions: Lite, Pro, and 2, in increasing order of "more features", ie: 2 has more features than Pro, which has more features than Lite. Each edition comes in debug and release configs. You'll be working on "2 debug". You should be able to immediately "press play" to run the app.

When you run it will stop at the main() so you can poke around. Stepping into the constructor of CApp will enlighten you as to the startup process of the business logic of the application. feel free to remove this breakpoint.

Qt Kit Updates

separate page for that too

Project Settings

separate page for that

Perforce

The Perforce application is already set up for you. I'll send you your user's password. You can just "break locks" when editing files, and later tell P4 to open them for edit using the command line. The commands for that are:

p4 diff -se "//depot/kJams/..." | p4 -x - edit;
p4 diff -se "//depot/CF/..." | p4 -x - edit;
p4 diff -se "//depot/CFTest/..." | p4 -x - edit;

If you edit something in one of those subtrees, you only need to issue the command for that one subtree. On the mac, you can just type "oemf" (open for edit modified files) and it will issue all three for you.

Never check in any ".pro.user" files, and be aware that you'll get messages like "must resolve #xx before submitting", which you can safely ignore.

Please coordinate with me before you to check in any .pri files

If you need to update your p4 version, the command line client goes into /usr/local/bin

Windows

When the kJams reference app auto updates, the installer may be caught by your antivirus, you may have to turn off antivirus or white list the kJams installer.

Mac

DO NOT UPDATE to Catalina! The "Software Update" will urge you to update. RESIST!

Please DO do any security or Mojave-related updates.

There is no password to the user. If the OS asks for a password to do something, just press enter.

In the Dock, the kJams app on the far right is the reference (32bit) app. The one just to its left is the app you're building (it can run but only shows a shell). On the left next to Finder is an app called PathFinder, which is a "power user's version of Finder", i find it useful for chmod'ing using a GUI.

Qt compiler will say it requires at least version 10.14 of the platform SDK, but please ignore that, do not switch SDKs

Parallels

Before opening the VM for the first time, configure the "Hardware->CPU & Memory" to your computer. Use the maximum CPU & memory you can for your particular computer (stay in the green however)