url unblank (url u) { if (is_concat (u) && (u[2]->t == "")) return u[1]; if (is_concat (u)) return u[1] * unblank (u[2]); if (is_or (u)) return unblank (u[1]) | unblank (u[2]); return u; }
OVesaBlank::OVesaBlank() : blankSem(NULL) { try // this is not the first instance of this class in the system { blankSem = new OMuxSem("\\SEM32\\OVBlank.SEM", OMuxSem::open, FALSE); } catch(OVioException &ex) { blankSem = new OMuxSem("\\SEM32\\OVBlank.SEM", OMuxSem::create, FALSE); } if (OVesaBlank::currentState != OVesaBlank::on) unblank(); }
static url url_get_atom (string s, int type) { if (type < URL_STANDARD) { if (s == "~") return url_system (get_env ("HOME")); if (starts (s, "$")) { string val= get_env (s (1, N(s))); if (val == "") return url_none (); return unblank (url_system (val)); } } if (occurs ("*", s)) return url_wildcard (s); #ifdef WINPATHS if(N(s)==2 && ends (s, ":")) s->resize(1); // remove the ':' after unit letter #endif return as_url (tree (s)); }
status_t BnSurfaceComposer::onTransact( uint32_t code, const Parcel& data, Parcel* reply, uint32_t flags) { switch(code) { case CREATE_CONNECTION: { CHECK_INTERFACE(ISurfaceComposer, data, reply); sp<IBinder> b = createConnection()->asBinder(); reply->writeStrongBinder(b); } break; case CREATE_GRAPHIC_BUFFER_ALLOC: { CHECK_INTERFACE(ISurfaceComposer, data, reply); sp<IBinder> b = createGraphicBufferAlloc()->asBinder(); reply->writeStrongBinder(b); } break; case SET_TRANSACTION_STATE: { CHECK_INTERFACE(ISurfaceComposer, data, reply); size_t count = data.readInt32(); ComposerState s; Vector<ComposerState> state; state.setCapacity(count); for (size_t i=0 ; i<count ; i++) { s.read(data); state.add(s); } count = data.readInt32(); DisplayState d; Vector<DisplayState> displays; displays.setCapacity(count); for (size_t i=0 ; i<count ; i++) { d.read(data); displays.add(d); } uint32_t flags = data.readInt32(); setTransactionState(state, displays, flags); } break; case BOOT_FINISHED: { CHECK_INTERFACE(ISurfaceComposer, data, reply); bootFinished(); } break; case CAPTURE_SCREEN: { CHECK_INTERFACE(ISurfaceComposer, data, reply); sp<IBinder> display = data.readStrongBinder(); uint32_t reqWidth = data.readInt32(); uint32_t reqHeight = data.readInt32(); uint32_t minLayerZ = data.readInt32(); uint32_t maxLayerZ = data.readInt32(); sp<IMemoryHeap> heap; uint32_t w, h; PixelFormat f; status_t res = captureScreen(display, &heap, &w, &h, &f, reqWidth, reqHeight, minLayerZ, maxLayerZ); reply->writeStrongBinder(heap->asBinder()); reply->writeInt32(w); reply->writeInt32(h); reply->writeInt32(f); reply->writeInt32(res); } break; case AUTHENTICATE_SURFACE: { CHECK_INTERFACE(ISurfaceComposer, data, reply); sp<ISurfaceTexture> surfaceTexture = interface_cast<ISurfaceTexture>(data.readStrongBinder()); int32_t result = authenticateSurfaceTexture(surfaceTexture) ? 1 : 0; reply->writeInt32(result); } break; case CREATE_DISPLAY_EVENT_CONNECTION: { CHECK_INTERFACE(ISurfaceComposer, data, reply); sp<IDisplayEventConnection> connection(createDisplayEventConnection()); reply->writeStrongBinder(connection->asBinder()); return NO_ERROR; } break; case CREATE_DISPLAY: { CHECK_INTERFACE(ISurfaceComposer, data, reply); String8 displayName = data.readString8(); bool secure = bool(data.readInt32()); sp<IBinder> display(createDisplay(displayName, secure)); reply->writeStrongBinder(display); return NO_ERROR; } break; case GET_BUILT_IN_DISPLAY: { CHECK_INTERFACE(ISurfaceComposer, data, reply); int32_t id = data.readInt32(); sp<IBinder> display(getBuiltInDisplay(id)); reply->writeStrongBinder(display); return NO_ERROR; } break; case BLANK: { CHECK_INTERFACE(ISurfaceComposer, data, reply); sp<IBinder> display = data.readStrongBinder(); blank(display); } break; case UNBLANK: { CHECK_INTERFACE(ISurfaceComposer, data, reply); sp<IBinder> display = data.readStrongBinder(); unblank(display); } break; case GET_DISPLAY_INFO: { CHECK_INTERFACE(ISurfaceComposer, data, reply); DisplayInfo info; sp<IBinder> display = data.readStrongBinder(); status_t result = getDisplayInfo(display, &info); memcpy(reply->writeInplace(sizeof(DisplayInfo)), &info, sizeof(DisplayInfo)); reply->writeInt32(result); } break; default: return BBinder::onTransact(code, data, reply, flags); } return NO_ERROR; }
OVesaBlank::~OVesaBlank() { unblank(); delete blankSem; }
void Nixie_i2c::displayNumber(int number) { _currentNumber = number; unblank(); }