801905c20d758a520abff2e0b8a269ceef3cce0c larrym Thu Sep 8 10:21:15 2011 -0700 more work on return image via URL (redmine 4888) diff --git src/hg/hgTracks/renderMain.c src/hg/hgTracks/renderMain.c index d638b0b..bdb3486 100644 --- src/hg/hgTracks/renderMain.c +++ src/hg/hgTracks/renderMain.c @@ -102,39 +102,49 @@ makeActiveImage(trackList, NULL); verboseTime(2,"After makeActiveImage"); } int main(int argc, char *argv[]) { if(argc == 1) { // CGI call // htmlPushEarlyHandlers(); XXXX do I need to do this? hPrintDisable(); oldVars = hashNew(10); struct cart *cart = cartForSession(hUserCookie(), excludeVars, oldVars); + // setup approriate CGI variables which tell hgTracks code what to do. - cartSetBoolean(cart, "hgt.imageV1", TRUE); cartSetBoolean(cart, "hgt.trackImgOnly", TRUE); + if(cartVarExists(cart, "jsonp")) + { + cartSetString(cart, "hgt.contentType", "jsonp"); + cartSetString(cart, "hgt.trackNameFilter", cartString(cart, "track")); + } + else + { cartSetString(cart, "hgt.contentType", "png"); - printf("Content-Disposition: filename=hgTracks.png\nContent-Type: image/png\n\n"); + cartSetBoolean(cart, "hgt.imageV1", TRUE); + } doMiddle(cart); } else { + // XXXX remove this code ... well, maybe not - this still might be useful for a stand-alone renderer. + // command line call /* Set up some timing since we're trying to optimize things very often. */ long enteredMainTime = clock1000(); verboseTimeInit(); /* Push very early error handling - this is just * for the benefit of the cgiVarExists, which * somehow can't be moved effectively into doMiddle. */ // htmlPushEarlyHandlers(); /* Set up cgi vars from command line. */ // cgiSpoof(&argc, argv); optionInit(&argc, argv, options); if (argc != 4)