void DACWriteWord(uint32_t offset, uint16_t data, uint32_t who/*= UNKNOWN*/) { if (offset == LTXD + 2) *ltxd = data; else if (offset == RTXD + 2) *rtxd = data; else if (offset == SCLK + 2) // Sample rate { WriteLog("DAC: Writing %u to SCLK (by %s)...\n", data, whoName[who]); *sclk = data & 0xFF; JERRYI2SInterruptTimer = -1; RemoveCallback(JERRYI2SCallback); JERRYI2SCallback(); } else if (offset == SMODE + 2) { // serialMode = data; *smode = data; WriteLog("DAC: %s writing to SMODE. Bits: %s%s%s%s%s%s [68K PC=%08X]\n", whoName[who], (data & 0x01 ? "INTERNAL " : ""), (data & 0x02 ? "MODE " : ""), (data & 0x04 ? "WSEN " : ""), (data & 0x08 ? "RISING " : ""), (data & 0x10 ? "FALLING " : ""), (data & 0x20 ? "EVERYWORD" : ""), m68k_get_reg(NULL, M68K_REG_PC)); } }
void JERRYResetPIT2(void) { RemoveCallback(JERRYPIT2Callback); if (JERRYPIT1Prescaler | JERRYPIT1Divider) { double usecs = (float)(JERRYPIT2Prescaler + 1) * (float)(JERRYPIT2Divider + 1) * RISC_CYCLE_IN_USEC; SetCallbackTime(JERRYPIT2Callback, usecs, EVENT_JERRY); } }
//------------------------------------------------------------------------------------------- BOOL CALLBACK DlgProc(HWND hDlg, UINT uMsg, WPARAM wP, LPARAM lP) { switch (uMsg) { case WM_INITDIALOG: hwDlg = hDlg; hwInstall = GetDlgItem(hDlg, IDC_BTN_INSTALL); hwRemove = GetDlgItem(hDlg, IDC_BTN_REMOVE); // try to install on start if WLM is running InstallCallback(); return TRUE; break; case WM_COMMAND: if (LOWORD(wP) == IDCANCEL) { // remove callback before unloading RemoveCallback(); EndDialog(hDlg,0); return TRUE; } else if (LOWORD(wP) == IDC_BTN_INSTALL) { InstallCallback(); return true; } else if (LOWORD(wP) == IDC_BTN_REMOVE) { RemoveCallback(); return true; } break; case From_CALLBACK: // this is called from the callback procedure ShowLambda(); return true; break; } return false; }
void DACWriteWord(uint32_t offset, uint16_t data, uint32_t who) { if (offset == LTXD + 2) *ltxd = data; else if (offset == RTXD + 2) *rtxd = data; else if (offset == SCLK + 2) // Sample rate { *sclk = data & 0xFF; JERRYI2SInterruptTimer = -1; RemoveCallback(JERRYI2SCallback); JERRYI2SCallback(); } else if (offset == SMODE + 2) *smode = data; }
int CamerasChild::StopCapture(CaptureEngine aCapEngine, const int capture_id) { LOG((__PRETTY_FUNCTION__)); nsCOMPtr<nsIRunnable> runnable = media::NewRunnableFrom([this, aCapEngine, capture_id]() -> nsresult { if (this->SendStopCapture(aCapEngine, capture_id)) { return NS_OK; } return NS_ERROR_FAILURE; }); LockAndDispatch<> dispatcher(this, __func__, runnable); if (dispatcher.Success()) { RemoveCallback(aCapEngine, capture_id); } return dispatcher.ReturnValue(); }
//------------------------------------------------------------------------------------------- void __cdecl MyCallbackProc(long Mode, long IntVal, double DblVal) { switch (Mode) { case cmiWavelength1: // new wavelength has been calculated dblLambda = DblVal; DlgProc(0, From_CALLBACK, 0, 0); break; case cmiVersion: // WLM has started and publishes version information iVersion = IntVal; DlgProc(0, From_CALLBACK, 0, 0); break; case cmiDLLDetach: // WLM has exited RemoveCallback(); break; } }
//------------------------------------------------------------------------------------------- void InstallCallback(void) { // check if WLM is running if ( Instantiate(cInstCheckForWLM, 1, 0, 0) ) { // Get version information for display resolution iVersion = GetWLMVersion(iVersion); // install the callback procedure Instantiate(cInstNotification, cNotifyInstallCallback, (long)&MyCallbackProc, 0); // fit te buttons' appearances EnableWindow(hwRemove, true); EnableWindow(hwInstall, false); } else // simply call this to toggle the buttons if needed RemoveCallback(); // obtain the existing wavelength on first call dblLambda = GetWavelength(dblLambda); ShowLambda(); }
// Add Callback // Make the given callback object current for the given token. void trpgr_Parser::AddCallback(trpgToken tok,trpgr_Callback *cb,bool in_dest) { RemoveCallback(tok); tokenMap[tok] = trpgr_Token(tok,cb,in_dest); }
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { switch(message) { case WM_FOO_GET_ACTIVE_PLAYLIST_COUNT: if(plist_api) return activeplaylist_get_item_count(&plist_api); return P_ERROR; case WM_FOO_GET_PLAYLIST_ITEM: { char title[512]; wchar_t w_title[512]; if(!ptcomp_api || !plist_api || !pback_api) return P_ERROR; if(wParam == -1 && !is_playing(&pback_api)) return P_ERROR; int tracknumb = (wParam==-1)?(int)get_playing_item_location(&plist_api):wParam; PTITLEFORMAT_OBJECT *t_obj=0; // Must be 0!!! if(!GetWindowText(p_hWnd, title, 512)) return P_ERROR; if(compile(&ptcomp_api, &t_obj, title)) { string_free(); playlist_item_format_title(&plist_api, get_active_playlist(&plist_api), tracknumb, 0, &str, &t_obj, 0, display_level_all); MultiByteToWideChar(CP_UTF8, 0, str.data, -1, w_title, 512); SetWindowTextW(p_hWnd, w_title); service_release((PSERVICE_BASE*)t_obj); return 0; } return P_ERROR; } case WM_FOO_GET_CURRENT_TRACK: if(plist_api) return get_playing_item_location(&plist_api); return P_ERROR; case WM_FOO_ORDER: if(plist_api) {playback_order_set_active(&plist_api, wParam); return 0;} return P_ERROR; case WM_FOO_OPEN: return main_open(&g_api); case WM_FOO_ADD: return main_add_files(&g_api); case WM_FOO_ADDDIR: return main_add_directory(&g_api); case WM_FOO_PLAY: if(pback_api) {start_resume(&pback_api); return 0;} return P_ERROR; case WM_FOO_STOP: if(pback_api) {stop(&pback_api); return 0;} return P_ERROR; case WM_FOO_PLAY_NEXT: if(pback_api) {start(&pback_api, track_command_next); return 0;} return P_ERROR; case WM_FOO_PLAY_PREV: if(pback_api) {start(&pback_api, track_command_prev); return 0;} return P_ERROR; case WM_FOO_PLAY_RANDOM: if(pback_api) {start(&pback_api, track_command_rand); return 0;} return P_ERROR; case WM_FOO_PAUSE: if(pback_api) {pause(&pback_api, true); return 0;} return P_ERROR; case WM_FOO_PLAY_PAUSE: if(pback_api) {play_pause(&pback_api); return 0;} return P_ERROR; case WM_FOO_VOLUME_UP: if(pback_api) {volume_up(&pback_api); return 0;} return P_ERROR; case WM_FOO_VOLUME_DOWN: if(pback_api) {volume_down(&pback_api); return 0;} return P_ERROR; case WM_FOO_GET_VOLUME: if(pback_api) return get_volume(&pback_api); return P_ERROR; case WM_FOO_SET_VOLUME: if(pback_api) {set_volume(&pback_api, wParam); return 0;} return P_ERROR; case WM_FOO_MUTE: if(pback_api) {mute(&pback_api); return 0;} return P_ERROR; case WM_FOO_IS_PLAYING: if(pback_api) return (is_playing(&pback_api) && !is_paused(&pback_api)); return P_ERROR; case WM_FOOL_IS_PAUSED: if(pback_api) return is_paused(&pback_api); return P_ERROR; case WM_FOO_GET_STOP_AFTER_CURRENT: if(pback_api) return get_stop_after_current(&pback_api); return P_ERROR; case WM_FOO_SET_STOP_AFTER_CURRENT: if(pback_api) {set_stop_after_current(&pback_api, wParam); return 0;} return P_ERROR; case WM_FOO_PLAYBACK_CAN_SEEK: if(pback_api) return playback_can_seek(&pback_api); return P_ERROR; case WM_FOO_PLAYBACK_SEEK: if(pback_api) {playback_seek(&pback_api, wParam); return 0;} return P_ERROR; case WM_FOO_PLAYBACK_SEEK_DELTA: if(pback_api) {playback_seek_delta(&pback_api, wParam); return 0;} return P_ERROR; case WM_FOO_GET_POSITION: if(pback_api) return playback_get_position(&pback_api); return P_ERROR; case WM_FOO_GET_LENGTH: if(pback_api) return playback_get_length(&pback_api); return P_ERROR; case WM_FOO_EXIT: return main_exit(&g_api); case WM_FOO_ACTIVATE: return main_activate(&g_api); case WM_FOO_HIDE: return main_hide(&g_api); case WM_FOO_PLAY_TRACK: if(plist_api) {playlist_execute_default_action(&plist_api, get_active_playlist(&plist_api), wParam); return 0;} return P_ERROR; case WM_FOO_REGISTER_CALLBACK: if(wParam & PLAYBACK_START) AddCallback((PFCALLBACK)&callbacks, CSTARTING, (HWND)lParam, 0); if(wParam & PLAYBACK_DYNAMIC_INFO) AddCallback((PFCALLBACK)&callbacks, CDYNAMIC_INFO, (HWND)lParam, 0); if(wParam & PLAYBACK_DYNAMIC_INFO_TRACK) AddCallback((PFCALLBACK)&callbacks, CDYNAMIC_INFO_TRACK, (HWND)lParam, 0); if(wParam & PLAYBACK_TIME) AddCallback((PFCALLBACK)&callbacks, CTIME, (HWND)lParam, 0); if(wParam & PLAYBACK_VOLUME_CHANGE) AddCallback((PFCALLBACK)&callbacks, CVOLUME_CHANGE, (HWND)lParam, 0); if(wParam & PLAYBACK_STOP) AddCallback((PFCALLBACK)&callbacks, CSTOP, (HWND)lParam, 0); if(wParam & PLAYBACK_SEEK) AddCallback((PFCALLBACK)&callbacks, CSEEK, (HWND)lParam, 0); if(wParam & PLAYBACK_PAUSE) AddCallback((PFCALLBACK)&callbacks, CPAUSE, (HWND)lParam, 0); if(wParam & PLAYBACK_NEW_TRACK) { char caption[512]; if(GetWindowText(p_hWnd, caption, 512)) AddCallback((PFCALLBACK)&callbacks, CNEW_TRACK, (HWND)lParam, caption); } if(wParam & PLAYBACK_EDITED) { char caption[512]; if(GetWindowText(p_hWnd, caption, 512)) AddCallback((PFCALLBACK)&callbacks, CEDITED, (HWND)lParam, caption); } return 0; case WM_FOO_UNREGISTER_CALLBACK: if(wParam & PLAYBACK_START) RemoveCallback((PFCALLBACK)&callbacks, CSTARTING, (HWND)lParam); if(wParam & PLAYBACK_NEW_TRACK) RemoveCallback((PFCALLBACK)&callbacks, CNEW_TRACK, (HWND)lParam); if(wParam & PLAYBACK_STOP) RemoveCallback((PFCALLBACK)&callbacks, CSTOP, (HWND)lParam); if(wParam & PLAYBACK_SEEK) RemoveCallback((PFCALLBACK)&callbacks, CSEEK, (HWND)lParam); if(wParam & PLAYBACK_PAUSE) RemoveCallback((PFCALLBACK)&callbacks, CPAUSE, (HWND)lParam); if(wParam & PLAYBACK_EDITED) RemoveCallback((PFCALLBACK)&callbacks, CEDITED, (HWND)lParam); if(wParam & PLAYBACK_DYNAMIC_INFO) RemoveCallback((PFCALLBACK)&callbacks, CDYNAMIC_INFO, (HWND)lParam); if(wParam & PLAYBACK_DYNAMIC_INFO_TRACK) RemoveCallback((PFCALLBACK)&callbacks, CDYNAMIC_INFO_TRACK, (HWND)lParam); if(wParam & PLAYBACK_TIME) RemoveCallback((PFCALLBACK)&callbacks, CTIME, (HWND)lParam); if(wParam & PLAYBACK_VOLUME_CHANGE) RemoveCallback((PFCALLBACK)&callbacks, CVOLUME_CHANGE, (HWND)lParam); return 0; default: return DefWindowProc(hWnd, message, wParam, lParam); } }
bool CardRegion::OnLButtonUp(int x, int y) { CardRegion *pDestStack = 0; HDC hdc; int dropstackid = CS_DROPZONE_NODROP; RECT dragrect; DropZone *dropzone; fMouseDragging = false; //first of all, see if any drop zones have been registered SetRect(&dragrect, x-mousexoffset, y-mouseyoffset, x-mousexoffset+nDragCardWidth, y-mouseyoffset+nDragCardHeight); dropzone = parentWnd.GetDropZoneFromRect(&dragrect); if(dropzone) { dropstackid = dropzone->DropCards(dragstack); if(dropstackid != CS_DROPZONE_NODROP) pDestStack = parentWnd.CardRegionFromId(dropstackid); else pDestStack = 0; } else { pDestStack = parentWnd.GetBestStack(x - mousexoffset, y - mouseyoffset, nDragCardWidth, nDragCardHeight); } // If have found a stack to drop onto // TRACE ( "can I drop card?\n" ); if(pDestStack && pDestStack->CanDropCards(dragstack)) { TRACE ( "yes, dropping card\n" ); hdc = GetDC((HWND)parentWnd); // UseNicePalette(hdc); ZoomCard(hdc, x - mousexoffset, y - mouseyoffset, pDestStack); ReleaseDC((HWND)parentWnd, hdc); // //add the cards to the destination stack // CardStack temp = pDestStack->GetCardStack(); temp.Push(dragstack); pDestStack->SetCardStack(temp); // pDestStack->Update(); //Update this stack's card count + size // pDestStack->UpdateFaceDir(temp); // Call the remove callback on THIS stack, if one is specified // if(RemoveCallback) RemoveCallback(*this, iNumDragCards); // Call the add callback, if one is specified // if(pDestStack->AddCallback) pDestStack->AddCallback(*pDestStack, pDestStack->cardstack);//index, deststack->numcards); RedrawIfNotDim(pDestStack, true); TRACE ( "done dropping card\n" ); } // // Otherwise, let the cards snap back onto this stack // else { TRACE ( "no, putting card back\n" ); hdc = GetDC((HWND)parentWnd); TRACE ( "calling ZoomCard()\n" ); ZoomCard(hdc, x - mousexoffset, y - mouseyoffset, this); TRACE ( "cardstack += dragstack\n" ); cardstack += dragstack; TRACE ( "calling ReleaseDC()\n" ); ReleaseDC((HWND)parentWnd, hdc); TRACE ( "calling Update()\n" ); Update(); //Update this stack's card count + size TRACE ( "done putting card back\n" ); } ReleaseDragBitmaps(); ReleaseCapture(); TRACE ( "OnLButtonUp() done\n" ); return true; }