void DisasmViewer::settingsChanged() { frameL = frameT = frameB = frameWidth(); frameR = frameL + scrollBar->sizeHint().width(); setMinimumHeight(frameT + 5 * fontMetrics().height() + frameB); // set font sizes Settings& s = Settings::get(); QFontMetrics lfm(s.font(Settings::LABEL_FONT)); QFontMetrics cfm(s.font(Settings::CODE_FONT)); labelFontHeight = lfm.height(); labelFontAscent = lfm.ascent(); codeFontHeight = cfm.height(); codeFontAscent = cfm.ascent(); // calculate layout locations int charWidth = cfm.width("0"); xAddr = frameL + 40; xMCode[0] = xAddr + 6 * charWidth; xMCode[1] = xMCode[0] + 3 * charWidth; xMCode[2] = xMCode[1] + 3 * charWidth; xMCode[3] = xMCode[2] + 3 * charWidth; xMnem = xMCode[3] + 4 * charWidth; xMnemArg = xMnem + 7 * charWidth; setMinimumSize(xMCode[0], 2*codeFontHeight); setMaximumSize(QApplication::desktop()->width(), QApplication::desktop()->height()); update(); }
// This is a copy of OS X's XRE_GetBinaryPath from nsAppRunner.cpp with the // gBinaryPath check removed so that the updater can reload the stub executable // instead of xulrunner-bin. See bug 349737. static nsresult GetXULRunnerStubPath(const char* argv0, nsILocalFile* *aResult) { nsresult rv; nsCOMPtr<nsILocalFile> lf; NS_NewNativeLocalFile(EmptyCString(), PR_TRUE, getter_AddRefs(lf)); nsCOMPtr<nsILocalFileMac> lfm (do_QueryInterface(lf)); if (!lfm) return NS_ERROR_FAILURE; // Works even if we're not bundled. CFBundleRef appBundle = CFBundleGetMainBundle(); if (!appBundle) return NS_ERROR_FAILURE; CFURLRef bundleURL = CFBundleCopyExecutableURL(appBundle); if (!bundleURL) return NS_ERROR_FAILURE; FSRef fileRef; if (!CFURLGetFSRef(bundleURL, &fileRef)) { CFRelease(bundleURL); return NS_ERROR_FAILURE; } rv = lfm->InitWithFSRef(&fileRef); CFRelease(bundleURL); if (NS_FAILED(rv)) return rv; NS_ADDREF(*aResult = lf); return NS_OK; }
static int run(void) { int i; int *grey = (int *)malloc(sizeof(int)*width); int speed[2]={150,150}; ////default fixed speed, whther Epuck is on line or not const unsigned char *image; // 1. Get the sensors values image = wb_camera_get_image(cam); for (i = 0; i < width; i++) { grey[i] = 255-wb_camera_image_get_grey(image, width, i, 0); ////0 = black, 255 = white, so 255-0=255 in grey[i] = black (value representation is now reversed ////capture just topmost row for the width of the camera vision } // 2. Behavior-based robotic: // call the modules in the right order lem(grey,width); lfm(grey, width); llm(grey, width); //utm(); // 3. Send the values to actuators wb_differential_wheels_set_speed( speed[LEFT]+lfm_speed[LEFT],//+utm_speed[LEFT], speed[RIGHT]+lfm_speed[RIGHT]//+utm_speed[RIGHT] ); free(grey); return TIME_STEP; }
void lastfm::TrackData::onGotInfo() { const QByteArray data = static_cast<QNetworkReply*>(sender())->readAll(); try { lastfm::XmlQuery lfm( data ); QString imageUrl = lfm["track"]["image size=small"].text(); if ( !imageUrl.isEmpty() ) m_images[lastfm::Small] = imageUrl; imageUrl = lfm["track"]["image size=medium"].text(); if ( !imageUrl.isEmpty() ) m_images[lastfm::Medium] = imageUrl; imageUrl = lfm["track"]["image size=large"].text(); if ( !imageUrl.isEmpty() ) m_images[lastfm::Large] = imageUrl; imageUrl = lfm["track"]["image size=extralarge"].text(); if ( !imageUrl.isEmpty() ) m_images[lastfm::ExtraLarge] = imageUrl; imageUrl = lfm["track"]["image size=mega"].text(); if ( !imageUrl.isEmpty() ) m_images[lastfm::Mega] = imageUrl; loved = lfm["track"]["userloved"].text().toInt(); emit gotInfo( data ); emit loveToggled( loved ); } catch (...) { emit gotInfo( data ); } // you should connect everytime you call getInfo disconnect( this, SIGNAL(gotInfo(const QByteArray&)), 0, 0); }
NS_IMETHODIMP nsMacShellService::OpenApplicationWithURI(nsIFile* aApplication, const nsACString& aURI) { nsCOMPtr<nsILocalFileMac> lfm(do_QueryInterface(aApplication)); CFURLRef appURL; nsresult rv = lfm->GetCFURL(&appURL); if (NS_FAILED(rv)) return rv; const nsCString spec(aURI); const UInt8* uriString = (const UInt8*)spec.get(); CFURLRef uri = ::CFURLCreateWithBytes(nullptr, uriString, aURI.Length(), kCFStringEncodingUTF8, nullptr); if (!uri) return NS_ERROR_OUT_OF_MEMORY; CFArrayRef uris = ::CFArrayCreate(nullptr, (const void**)&uri, 1, nullptr); if (!uris) { ::CFRelease(uri); return NS_ERROR_OUT_OF_MEMORY; } LSLaunchURLSpec launchSpec; launchSpec.appURL = appURL; launchSpec.itemURLs = uris; launchSpec.passThruParams = nullptr; launchSpec.launchFlags = kLSLaunchDefaults; launchSpec.asyncRefCon = nullptr; OSErr err = ::LSOpenFromURLSpec(&launchSpec, nullptr); ::CFRelease(uris); ::CFRelease(uri); return err != noErr ? NS_ERROR_FAILURE : NS_OK; }
int main(int argc, char **argv) { if (argc != 3) { std::cout << "Usage: musiccontrols <musiclibrary.xml> <music location>" << std::endl; return 1; } //become a daemon /* if(fork() != 0) return 0; setpgrp(); // break away from process group */ int exitstatus = 0; //globally init curl (thread unsafe) curl_global_init(CURL_GLOBAL_NOTHING); http = new httpSocket(ServerHttpPort); ss = new streamSocket(ServerWebsocketPort); player = new mp3Player( "file://" + std::string(argv[2]) ); player->trackChangedFn = &playerTrackChanged; lib = new musicLibrary(); if (!lib->loadLibrary( std::string(argv[1]) )) std::cout << "couldn't load library file" << std::endl; //add song pickers in the order they should be used lastFM lfm(LastFmApiKey, *lib); artistPicker ap(*lib); player->pickerList.push_back(&lfm); player->pickerList.push_back(&ap); while (!exitstatus) { //poll, wait at most 100 ms ss->pollFDList(100); //respond to events on the websocket for (size_t i=0; i<ss->fdlist.size(); i++) { if (ss->fdlist[i].revents & POLLERR) { //error, close the fd ss->closeSocket(ss->fdlist[i].fd); i--; continue; } //check for incoming data if (!(ss->fdlist[i].revents & POLLIN)) continue; //check websocket opcode unsigned char opcode = 0x0; std::vector<unsigned char> data = ss->recvData(ss->fdlist[i].fd, opcode); if (opcode == streamSocket::WEBSOCKET_OP_DISCONNECT) { ss->closeSocket(ss->fdlist[i].fd); i--; continue; } else if (opcode == streamSocket::WEBSOCKET_OP_PING) { //reply with pong ss->sendData(ss->fdlist[i].fd, data.data(), data.size(), streamSocket::WEBSOCKET_OP_PONG); continue; } ControlCommand command = (ControlCommand)data[0]; //parse command switch (command) { case Status: sendSingleStatusReport(ss->fdlist[i].fd); break; case MusicListing: { int group = 0, artist = 0, album = 0; std::string response; response += (char)0x01; if (data.size() >= 1 * 4 + 1) group = (data[ 1] << 24) | (data[ 2] << 16) | (data[ 3] << 8) | (data[ 4] << 0); if (data.size() >= 2 * 4 + 1) artist = (data[ 5] << 24) | (data[ 6] << 16) | (data[ 7] << 8) | (data[ 8] << 0); if (data.size() >= 3 * 4 + 1) album = (data[ 9] << 24) | (data[10] << 16) | (data[11] << 8) | (data[12] << 0); if (album != 0) { lib->listToString(lib->getTracks(group, artist, album), response, 10); } else if (artist != 0) { lib->listToString(lib->getAlbums(group, artist), response, 10); } else if (group != 0) { lib->listToString(lib->getArtists(group), response, 10); } else { lib->listToString(lib->getGroups(), response, 10); } ss->sendData(ss->fdlist[i].fd, (unsigned char *)response.data(), response.size()); break; } case Playlist: { std::string response; std::ostringstream str; str << (char)0x02; std::vector<playlistitem> list = player->getList(); for (size_t i = 0; i<list.size(); i++) { str << list[i].track << (char)13 << list[i].artist << (char)13 << list[i].reason; if (i != list.size() - 1) str << (char)10; } response = str.str(); ss->sendData(ss->fdlist[i].fd, (unsigned char *)response.data(), response.size()); break; } case AddToPlaylist: case PlayNow: { int group = 0, artist = 0, album = 0, track = 0; if (data.size() == 4 * 4 + 1) { group = (data[ 1] << 24) | (data[ 2] << 16) | (data[ 3] << 8) | (data[ 4] << 0); artist = (data[ 5] << 24) | (data[ 6] << 16) | (data[ 7] << 8) | (data[ 8] << 0); album = (data[ 9] << 24) | (data[10] << 16) | (data[11] << 8) | (data[12] << 0); track = (data[13] << 24) | (data[14] << 16) | (data[15] << 8) | (data[16] << 0); player->addItem(lib->getArtistName(group, artist), lib->getTrackName(group, artist, album, track), lib->getTrackFilename(group, artist, album, track)); if (command == PlayNow) { player->setPlaylistIndex(player->getPlaylistSize() - 1); player->play(); } sendStatusReport(true); } break; } case PlayPause: player->playPause(); sendStatusReport(false); break; case Play: player->play(); sendStatusReport(false); break; case Pause: player->pause(); sendStatusReport(false); break; case Previous: player->prev(); break; case Next: player->next(); break; case SetVol: if (data.size() != 2) continue; player->setVol(data[1]); sendStatusReport(false); break; case VolUp: player->setVol(player->getVol() + 10); sendStatusReport(false); break; case VolDown: player->setVol(player->getVol() - 10); sendStatusReport(false); break; case ToggleMute: player->setMute(!player->getMute()); sendStatusReport(false); break; case SetMute: if (data.size() != 2) continue; player->setMute((bool)data[1]); sendStatusReport(false); break; case SetPlaylistPosition: if (data.size() != 2) continue; player->setPlaylistIndex((size_t)data[1]); sendStatusReport(false); break; case ClearPlaylist: player->clearPlaylist(); sendStatusReport(true); break; case RestartServer: exitstatus = 1; break; case ShutDownServer: exitstatus = 2; break; } } } delete lib; delete player; delete ss; delete http; //clean up curl curl_global_cleanup(); switch (exitstatus) { case 1: system("shutdown -r now"); break; case 2: system("shutdown -h -H now"); break; } return exitstatus; }
NS_IMETHODIMP nsCommandLine::ResolveFile(const nsAString& aArgument, nsIFile* *aResult) { NS_ENSURE_TRUE(mWorkingDir, NS_ERROR_NOT_INITIALIZED); // This is some seriously screwed-up code. nsIFile.appendRelativeNativePath // explicitly does not accept .. or . path parts, but that is exactly what we // need here. So we hack around it. nsresult rv; #if defined(MOZ_WIDGET_COCOA) nsCOMPtr<nsILocalFileMac> lfm (do_QueryInterface(mWorkingDir)); NS_ENSURE_TRUE(lfm, NS_ERROR_NO_INTERFACE); nsCOMPtr<nsILocalFileMac> newfile (do_CreateInstance(NS_LOCAL_FILE_CONTRACTID)); NS_ENSURE_TRUE(newfile, NS_ERROR_OUT_OF_MEMORY); CFURLRef baseurl; rv = lfm->GetCFURL(&baseurl); NS_ENSURE_SUCCESS(rv, rv); nsAutoCString path; NS_CopyUnicodeToNative(aArgument, path); CFURLRef newurl = CFURLCreateFromFileSystemRepresentationRelativeToBase(nullptr, (const UInt8*) path.get(), path.Length(), true, baseurl); CFRelease(baseurl); rv = newfile->InitWithCFURL(newurl); CFRelease(newurl); if (NS_FAILED(rv)) return rv; newfile.forget(aResult); return NS_OK; #elif defined(XP_UNIX) nsCOMPtr<nsIFile> lf (do_CreateInstance(NS_LOCAL_FILE_CONTRACTID)); NS_ENSURE_TRUE(lf, NS_ERROR_OUT_OF_MEMORY); if (aArgument.First() == '/') { // absolute path rv = lf->InitWithPath(aArgument); if (NS_FAILED(rv)) return rv; NS_ADDREF(*aResult = lf); return NS_OK; } nsAutoCString nativeArg; NS_CopyUnicodeToNative(aArgument, nativeArg); nsAutoCString newpath; mWorkingDir->GetNativePath(newpath); newpath.Append('/'); newpath.Append(nativeArg); rv = lf->InitWithNativePath(newpath); if (NS_FAILED(rv)) return rv; rv = lf->Normalize(); if (NS_FAILED(rv)) return rv; lf.forget(aResult); return NS_OK; #elif defined(XP_WIN32) nsCOMPtr<nsIFile> lf (do_CreateInstance(NS_LOCAL_FILE_CONTRACTID)); NS_ENSURE_TRUE(lf, NS_ERROR_OUT_OF_MEMORY); rv = lf->InitWithPath(aArgument); if (NS_FAILED(rv)) { // If it's a relative path, the Init is *going* to fail. We use string magic and // win32 _fullpath. Note that paths of the form "\Relative\To\CurDrive" are // going to fail, and I haven't figured out a way to work around this without // the PathCombine() function, which is not available in plain win95/nt4 nsAutoString fullPath; mWorkingDir->GetPath(fullPath); fullPath.Append('\\'); fullPath.Append(aArgument); WCHAR pathBuf[MAX_PATH]; if (!_wfullpath(pathBuf, fullPath.get(), MAX_PATH)) return NS_ERROR_FAILURE; rv = lf->InitWithPath(nsDependentString(pathBuf)); if (NS_FAILED(rv)) return rv; } lf.forget(aResult); return NS_OK; #else #error Need platform-specific logic here. #endif }