//Write reg <= value using the three-phase transmission cycle in the SCCB //datasheet static void cameraWriteCycle( uint8_t reg, uint8_t value ){ //Three phase write startCondition(); writeByte(CAM_ADDR_W); writeByte(reg); writeByte(value); stopCondition(); return; }
//Read reg => retval using two-phase write and read cycle -- requires the timer static uint8_t cameraReadCycle( uint8_t reg ){ uint8_t byte; //Two phase write startCondition(); writeByte(CAM_ADDR_W); writeByte(reg); stopCondition(); idleState(); //Two phase read startCondition(); writeByte(CAM_ADDR_R); byte = readByte(); stopCondition(); return byte; }
void AutoStart::loadAutoStartList() { TQStringList files = TDEGlobal::dirs()->findAllResources("xdgconf-autostart", "*.desktop", false, true); TQStringList kdefiles = TDEGlobal::dirs()->findAllResources("autostart", "*.desktop", false, true); files += kdefiles; for(TQStringList::ConstIterator it = files.begin(); it != files.end(); ++it) { KDesktopFile config(*it, true); if (config.hasKey("X-TDE-autostart-condition")) { if (!startCondition(config.readEntry("X-TDE-autostart-condition"))) continue; } else { if (!startCondition(config.readEntry("X-TDE-autostart-condition"))) continue; } if (!config.tryExec()) continue; if (config.readBoolEntry("Hidden", false)) continue; // Check to see if the most important ( usually ~/.config/autostart or ~/.trinity/Autostart) XDG directory // has overridden the Hidden directive and honor it if set to True bool autostartOverriddenAndDisabled = false; for(TQStringList::ConstIterator localit = files.begin(); localit != files.end(); ++localit) { if (((*localit).startsWith(TDEGlobal::dirs()->localxdgconfdir()) == true) || ((*localit).startsWith(TDEGlobal::dirs()->localtdedir()) == true)) { // Same local file name? TQString localOuter; TQString localInner; int slashPos = (*it).findRev( '/', -1, TRUE ); if (slashPos == -1) { localOuter = (*it); } else { localOuter = (*it).mid(slashPos+1); } slashPos = (*localit).findRev( '/', -1, TRUE ); if (slashPos == -1) { localInner = (*localit); } else { localInner = (*localit).mid(slashPos+1); } if (localOuter == localInner) { // Overridden! // But is Hidden == True? KDesktopFile innerConfig(*localit, true); if (innerConfig.readBoolEntry("Hidden", false)) { // Override confirmed; exit speedily without autostarting autostartOverriddenAndDisabled = true; } } } } if (autostartOverriddenAndDisabled == true) continue; if (config.hasKey("OnlyShowIn")) { #ifdef WITH_OLD_XDG_STD if ((!config.readListEntry("OnlyShowIn", ';').contains("TDE")) && (!config.readListEntry("OnlyShowIn", ';').contains("KDE"))) continue; #else if (!config.readListEntry("OnlyShowIn", ';').contains("TDE")) continue; #endif } if (config.hasKey("NotShowIn")) { #ifdef WITH_OLD_XDG_STD if ((config.readListEntry("NotShowIn", ';').contains("TDE")) || (config.readListEntry("NotShowIn", ';').contains("KDE"))) continue; #else if (config.readListEntry("NotShowIn", ';').contains("TDE")) continue; #endif } AutoStartItem *item = new AutoStartItem; item->name = extractName(*it); item->service = *it; if (config.hasKey("X-TDE-autostart-after")) item->startAfter = config.readEntry("X-TDE-autostart-after"); else item->startAfter = config.readEntry("X-TDE-autostart-after"); if( m_newStartup ) { if (config.hasKey("X-TDE-autostart-phase")) item->phase = config.readNumEntry("X-TDE-autostart-phase", 2); else item->phase = config.readNumEntry("X-TDE-autostart-phase", 2); if (item->phase < 0) item->phase = 0; } else { if (config.hasKey("X-TDE-autostart-phase")) item->phase = config.readNumEntry("X-TDE-autostart-phase", 1); else item->phase = config.readNumEntry("X-TDE-autostart-phase", 1); if (item->phase < 1) item->phase = 1; } m_startList->append(item); } // Check for duplicate entries and remove if found TQPtrListIterator<AutoStartItem> it1(*m_startList); TQPtrListIterator<AutoStartItem> it2(*m_startList); AutoStartItem *item1; AutoStartItem *item2; while ((item1 = it1.current()) != 0) { bool dupfound1 = false; it2.toFirst(); while ((item2 = it2.current()) != 0) { bool dupfound2 = false; if (item2 != item1) { if (item1->service == item2->service) { m_startList->removeRef(item2); dupfound1 = true; dupfound2 = true; } } if (!dupfound2) { ++it2; } } if (!dupfound1) { ++it1; } } }