CAIInterfaceLibrary::CAIInterfaceLibrary(const CAIInterfaceLibraryInfo& _info) : interfaceId(-1) , initialized(false) , info(_info) { libFilePath = FindLibFile(); sharedLib = SharedLib::Instantiate(libFilePath); if (sharedLib == NULL) { LOG_L(L_ERROR, "Loading AI Interface library from file \"%s\".", libFilePath.c_str()); return; } if (InitializeFromLib(libFilePath) == 0) { InitStatic(); } }
namespace Tiles { WifiTile::CallbackInfo::CallbackInfo() : mEnabled(FALSE) , mConnected(FALSE) , mWifiSignalIconId(0) , mActivityIn(FALSE) , mActivityOut(FALSE) {} ECode WifiTile::CallbackInfo::ToString( /* [out] */ String* str) { VALIDATE_NOT_NULL(str); StringBuilder sb("CallbackInfo["); sb.Append("enabled="); sb.Append(mEnabled); sb.Append(",connected="); sb.Append(mConnected); sb.Append(",wifiSignalIconId="); sb.Append(mWifiSignalIconId); sb.Append(",enabledDesc="); sb.Append(mEnabledDesc); sb.Append(",activityIn="); sb.Append(mActivityIn); sb.Append(",activityOut="); sb.Append(mActivityOut); sb.Append(",wifiSignalContentDescription="); sb.Append(mWifiSignalContentDescription); sb.Append(']'); return sb.ToString(str); } CAR_INTERFACE_IMPL_3(WifiTile::WifiDetailAdapter, Object, IQSTileDetailAdapter \ , INetworkControllerAccessPointCallback, IQSDetailItemsCallback); WifiTile::WifiDetailAdapter::WifiDetailAdapter( /* [in] */ WifiTile* host) : mHost(host) {} ECode WifiTile::WifiDetailAdapter::GetTitle( /* [out] */ Int32* result) { VALIDATE_NOT_NULL(result); *result = R::string::quick_settings_wifi_label; return NOERROR; } ECode WifiTile::WifiDetailAdapter::GetSettingsIntent( /* [out] */ IIntent** result) { VALIDATE_NOT_NULL(result); *result = WIFI_SETTINGS; REFCOUNT_ADD(*result); return NOERROR; } ECode WifiTile::WifiDetailAdapter::GetToggleState( /* [out] */ IBoolean** result) { VALIDATE_NOT_NULL(result); return CBoolean::New(((QSTile::SignalState*)mHost->mState.Get())->mEnabled, result); } ECode WifiTile::WifiDetailAdapter::SetToggleState( /* [in] */ IBoolean* state) { if (DEBUG) Logger::D(mHost->TAG, "setToggleState %s", TO_CSTR(state)); Boolean tmp = FALSE; state->GetValue(&tmp); mHost->mController->SetWifiEnabled(tmp); mHost->ShowDetail(FALSE); return NOERROR; } ECode WifiTile::WifiDetailAdapter::CreateDetailView( /* [in] */ IContext* context, /* [in] */ IView* convertView, /* [in] */ IViewGroup* parent, /* [out] */ IView** view) { VALIDATE_NOT_NULL(view); if (DEBUG) Logger::D(mHost->TAG, "createDetailView convertView=%d", (convertView != NULL)); mAccessPoints = NULL; mHost->mController->ScanForAccessPoints(); mHost->FireScanStateChanged(TRUE); mItems = CQSDetailItems::ConvertOrInflate(context, convertView, parent); mItems->SetTagSuffix(String("Wifi")); mItems->SetCallback(this); mItems->SetEmptyState(R::drawable::ic_qs_wifi_detail_empty, R::string::quick_settings_wifi_detail_empty_text); UpdateItems(); SetItemsVisible(((QSTile::SignalState*)mHost->mState.Get())->mEnabled); *view = IView::Probe(mItems); REFCOUNT_ADD(*view); return NOERROR; } ECode WifiTile::WifiDetailAdapter::OnAccessPointsChanged( /* [in] */ ArrayOf<INetworkControllerAccessPoint*>* accessPoints) { mAccessPoints = accessPoints; UpdateItems(); if (accessPoints != NULL && accessPoints->GetLength() > 0) { mHost->FireScanStateChanged(FALSE); } return NOERROR; } ECode WifiTile::WifiDetailAdapter::OnDetailItemClick( /* [in] */ IQSDetailItemsItem* item) { AutoPtr<IInterface> tag; if (item == NULL || ((CQSDetailItems::Item*)item)->mTag == NULL) return NOERROR; AutoPtr<INetworkControllerAccessPoint> ap = INetworkControllerAccessPoint::Probe(((CQSDetailItems::Item*)item)->mTag); Boolean tmp = FALSE; if (ap->IsConnected(&tmp), !tmp) { mHost->mController->Connect(ap); } mHost->ShowDetail(FALSE); return NOERROR; } ECode WifiTile::WifiDetailAdapter::OnDetailItemDisconnect( /* [in] */ IQSDetailItemsItem* item) { // noop return NOERROR; } ECode WifiTile::WifiDetailAdapter::SetItemsVisible( /* [in] */ Boolean visible) { if (mItems == NULL) return NOERROR; mItems->SetItemsVisible(visible); return NOERROR; } void WifiTile::WifiDetailAdapter::UpdateItems() { if (mItems == NULL) return; AutoPtr<IArrayList> items; if (mAccessPoints != NULL) { Boolean tmp = FALSE; CArrayList::New(mAccessPoints->GetLength(), (IArrayList**)&items); for (Int32 i = 0; i < mAccessPoints->GetLength(); i++) { AccessPoint* ap = (AccessPoint*)(*mAccessPoints)[i]; AutoPtr<CQSDetailItems::Item> item = new CQSDetailItems::Item(); item->mTag = ap->Probe(EIID_IInterface); ap->GetIconId(&item->mIcon); ap->GetSsid(&item->mLine1); if (ap->IsConnected(&tmp), tmp) { mHost->mContext->GetString(R::string::quick_settings_connected, &item->mLine2); } items->Add(i, item->Probe(EIID_IInterface)); } } mItems->SetItems(items); } CAR_INTERFACE_IMPL(WifiTile::Callback, Object, INetworkSignalChangedCallback); WifiTile::Callback::Callback( /* [in] */ WifiTile* host) : mHost(host) {} ECode WifiTile::Callback::OnWifiSignalChanged( /* [in] */ Boolean enabled, /* [in] */ Boolean connected, /* [in] */ Int32 wifiSignalIconId, /* [in] */ Boolean activityIn, /* [in] */ Boolean activityOut, /* [in] */ const String& wifiSignalContentDescriptionId, /* [in] */ const String& description) { if (DEBUG) Logger::D(mHost->TAG, "onWifiSignalChanged enabled=%d", enabled); AutoPtr<CallbackInfo> info = new CallbackInfo(); info->mEnabled = enabled; info->mConnected = connected; info->mWifiSignalIconId = wifiSignalIconId; info->mEnabledDesc = description; info->mActivityIn = activityIn; info->mActivityOut = activityOut; info->mWifiSignalContentDescription = wifiSignalContentDescriptionId; mHost->RefreshState(info->Probe(EIID_IInterface)); return NOERROR; } ECode WifiTile::Callback::OnMobileDataSignalChanged( /* [in] */ Boolean enabled, /* [in] */ Int32 mobileSignalIconId, /* [in] */ const String& mobileSignalContentDescriptionId, /* [in] */ Int32 dataTypeIconId, /* [in] */ Boolean activityIn, /* [in] */ Boolean activityOut, /* [in] */ const String& dataTypeContentDescriptionId, /* [in] */ const String& description, /* [in] */ Boolean noSim, /* [in] */ Boolean isDataTypeIconWide) { // noop return NOERROR; } ECode WifiTile::Callback::OnAirplaneModeChanged( /* [in] */ Boolean enabled) { // noop return NOERROR; } ECode WifiTile::Callback::OnMobileDataEnabled( /* [in] */ Boolean enabled) { // noop return NOERROR; } AutoPtr<IIntent> WifiTile::WIFI_SETTINGS = InitStatic(); WifiTile::WifiTile( /* [in] */ IQSTileHost* host) : QSTile(host) { mStateBeforeClick = NewTileState(); mCallback = new Callback(this); host->GetNetworkController((INetworkController**)&mController); mDetailAdapter = new WifiDetailAdapter(this); } AutoPtr<IIntent> WifiTile::InitStatic() { CIntent::New(ISettings::ACTION_WIFI_SETTINGS, (IIntent**)&WIFI_SETTINGS); return WIFI_SETTINGS; } ECode WifiTile::SupportsDualTargets( /* [out] */ Boolean* result) { VALIDATE_NOT_NULL(result); *result = TRUE; return NOERROR; } AutoPtr<QSTile::State> WifiTile::NewTileState() { return new SignalState(); } ECode WifiTile::SetListening( /* [in] */ Boolean listening) { if (listening) { mController->AddNetworkSignalChangedCallback(mCallback); mController->AddAccessPointCallback(mDetailAdapter); } else { mController->RemoveNetworkSignalChangedCallback(mCallback); mController->RemoveAccessPointCallback(mDetailAdapter); } return NOERROR; } ECode WifiTile::GetDetailAdapter( /* [out] */ IQSTileDetailAdapter** result) { VALIDATE_NOT_NULL(result); *result = mDetailAdapter; REFCOUNT_ADD(*result); return NOERROR; } ECode WifiTile::CreateTileView( /* [in] */ IContext* context, /* [out] */ IQSTileView** view) { VALIDATE_NOT_NULL(view); *view = new SignalTileView(context); REFCOUNT_ADD(*view); return NOERROR; } void WifiTile::HandleClick() { Boolean tmp = FALSE; mState->CopyTo(mStateBeforeClick, &tmp); mController->SetWifiEnabled(!((QSTile::SignalState*)mState.Get())->mEnabled); } void WifiTile::HandleSecondaryClick() { mHost->StartSettingsActivity(WIFI_SETTINGS); } void WifiTile::HandleUpdateState( /* [in] */ State* state, /* [in] */ IInterface* arg) { state->mVisible = TRUE; if (DEBUG) Logger::D(TAG, "handleUpdateState arg=%s", TO_CSTR(arg)); if (arg == NULL) return; CallbackInfo* cb = (CallbackInfo*) IObject::Probe(arg); Boolean wifiConnected = cb->mEnabled && (cb->mWifiSignalIconId > 0) && (cb->mEnabledDesc != NULL); Boolean wifiNotConnected = (cb->mWifiSignalIconId > 0) && (cb->mEnabledDesc == NULL); Boolean enabledChanging = ((SignalState*)state)->mEnabled != cb->mEnabled; if (enabledChanging) { mDetailAdapter->SetItemsVisible(cb->mEnabled); FireToggleStateChanged(cb->mEnabled); } ((SignalState*)state)->mEnabled = cb->mEnabled; ((SignalState*)state)->mConnected = wifiConnected; ((SignalState*)state)->mActivityIn = cb->mEnabled && cb->mActivityIn; ((SignalState*)state)->mActivityOut = cb->mEnabled && cb->mActivityOut; ((SignalState*)state)->mFilter = TRUE; String signalContentDescription; AutoPtr<IResources> r; mContext->GetResources((IResources**)&r); if (!((SignalState*)state)->mEnabled) { state->mIconId = R::drawable::ic_qs_wifi_disabled; r->GetString(R::string::quick_settings_wifi_label, &state->mLabel); r->GetString(R::string::accessibility_wifi_off, &signalContentDescription); } else if (wifiConnected) { state->mIconId = cb->mWifiSignalIconId; state->mLabel = RemoveDoubleQuotes(cb->mEnabledDesc); signalContentDescription = cb->mWifiSignalContentDescription; } else if (wifiNotConnected) { state->mIconId = R::drawable::ic_qs_wifi_0; r->GetString(R::string::quick_settings_wifi_label, &state->mLabel); r->GetString(R::string::accessibility_no_wifi, &signalContentDescription); } else { state->mIconId = R::drawable::ic_qs_wifi_no_network; r->GetString(R::string::quick_settings_wifi_label, &state->mLabel); r->GetString(R::string::accessibility_wifi_off, &signalContentDescription); } AutoPtr<ArrayOf<IInterface*> > objs = ArrayOf<IInterface*>::Alloc(1); AutoPtr<ICharSequence> obj; CString::New(signalContentDescription, (ICharSequence**)&obj); objs->Set(0, obj); mContext->GetString(R::string::accessibility_quick_settings_wifi, objs, &state->mContentDescription); String wifiName = state->mLabel; if (((SignalState*)state)->mConnected) { obj = NULL; CString::New(state->mLabel, (ICharSequence**)&obj); r->GetString(R::string::accessibility_wifi_name, objs, &wifiName); } state->mDualLabelContentDescription = wifiName; } Boolean WifiTile::ShouldAnnouncementBeDelayed() { return ((QSTile::SignalState*)mStateBeforeClick.Get())->mEnabled == ((QSTile::SignalState*)mState.Get())->mEnabled; } String WifiTile::ComposeChangeAnnouncement() { String v; if (((QSTile::SignalState*)mState.Get())->mEnabled) { mContext->GetString(R::string::accessibility_quick_settings_wifi_changed_on, &v); } else { mContext->GetString(R::string::accessibility_quick_settings_wifi_changed_off, &v); } return v; } String WifiTile::RemoveDoubleQuotes( /* [in] */ const String& string) { if (string == NULL) return String(NULL); const Int32 length = string.GetLength(); if ((length > 1) && (string.GetChar(0) == '"') && (string.GetChar(length - 1) == '"')) { return string.Substring(1, length - 1); } return string; } String WifiTile::GetSimpleName() { return String("WifiTile"); } } // namespace Tiles
static void FillSlab() { SlabAlloc1(uint64, AttN, 64); SlabAlloc1(uint64, AttK, 64); SlabAlloc1(uint64, AttPw, 64); SlabAlloc1(uint64, AttPb, 64); SlabAlloc1(typeMM, RookMM, 64); SlabAlloc1(typeMM, BishopMM, 64); SlabAlloc2(uint64, MMOrtho, 102400); SlabAlloc2(uint64, MMDiag, 5248); SlabAlloc1(uint64, SqSet, 64); SlabAlloc1(uint64, SqClear, 64); SlabAlloc1(uint64, NonDiag, 64); SlabAlloc1(uint64, NonOrtho, 64); SlabAlloc1(uint64, Ortho, 64); SlabAlloc1(uint64, Diag, 64); SlabAlloc1(uint64, OrthoDiag, 64); SlabAlloc1(uint64, OpenFileW, 64); SlabAlloc1(uint64, OpenFileB, 64); SlabAlloc1(uint64, PassedPawnW, 64); SlabAlloc1(uint64, PassedPawnB, 64); SlabAlloc1(uint64, ProtectedPawnW, 64); SlabAlloc1(uint64, ProtectedPawnB, 64); SlabAlloc1(uint64, IsolatedPawnW, 64); SlabAlloc1(uint64, IsolatedPawnB, 64); SlabAlloc1(uint64, ConnectedPawns, 64); SlabAlloc1(uint64, InFrontW, 8); SlabAlloc1(uint64, NotInFrontW, 8); SlabAlloc1(uint64, InFrontB, 8); SlabAlloc1(uint64, NotInFrontB, 8); SlabAlloc1(uint64, IsolatedFiles, 8); SlabAlloc1(uint64, FilesLeft, 8); SlabAlloc1(uint64, FilesRight, 8); SlabAlloc1(uint64, Doubled, 64); SlabAlloc1(uint64, Left2, 64); SlabAlloc1(uint64, Right2, 64); SlabAlloc1(uint64, Left1, 64); SlabAlloc1(uint64, Right1, 64); SlabAlloc1(uint64, Adjacent, 64); SlabAlloc1(uint64, LongDiag, 64); SlabAlloc1(uint64, Northwest, 64); SlabAlloc1(uint64, Southwest, 64); SlabAlloc1(uint64, Northeast, 64); SlabAlloc1(uint64, Souteast, 64); SlabAlloc1(uint64, QuadrantWKwtm, 64); SlabAlloc1(uint64, QuadrantBKwtm, 64); SlabAlloc1(uint64, QuadrantWKbtm, 64); SlabAlloc1(uint64, QuadrantBKbtm, 64); SlabAlloc1(uint64, ShepherdWK, 64); SlabAlloc1(uint64, ShepherdBK, 64); SlabAlloc3(uint64, Interpose, 0100 * 0100); SlabAlloc3(uint64, Evade, 0100 * 0100); SlabAlloc3(uint64, Zobrist, 0x10 * 0100); SlabAlloc3(sint8, Line, 0100 * 0100); SlabAlloc1(uint64, HashCastling, 16); SlabAlloc1(uint64, HashEP, 8); SlabAlloc1(uint64, HashRev, 16); #ifdef MultiplePosGain SlabAlloc2(sint16, MaxPositionalGain, MaxCPUs * 0x10 * 010000); #else SlabAlloc2(sint16, MaxPositionalGain, 0x10 * 010000); #endif #ifdef MultipleHistory SlabAlloc2(uint16, History, MaxCPUs * 0x10 * 0100); #else SlabAlloc2(uint16, History, 0x10 * 0100); #endif SlabAlloc2(sint32, PieceSquareValue, 0x10 * 0100); SlabAlloc2(typeMaterial, Material, 419904); ResetHistory(); ResetPositionalGain(); InitArrays(); InitMaterialValue(); InitStatic(); }
void FillSlab () { SLAB_ALLOC1 (uint64, AttN, 64); SLAB_ALLOC1 (uint64, AttK, 64); SLAB_ALLOC1 (uint64, AttPw, 64); SLAB_ALLOC1 (uint64, AttPb, 64); #ifndef MAGIC_BITBOARDS SLAB_ALLOC3 (uint64, LineMask, 4 * 0100 * 0100); SLAB_ALLOC3 (int, LineShift, 4 * 0100); SLAB_ALLOC1 (uint64, ClearL90, 64); SLAB_ALLOC1 (uint64, ClearL45, 64); SLAB_ALLOC1 (uint64, ClearR45, 64); SLAB_ALLOC1 (uint64, SetL90, 64); SLAB_ALLOC1 (uint64, SetL45, 64); SLAB_ALLOC1 (uint64, SetR45, 64); #else SLAB_ALLOC1 (type_MM, ROOK_MM, 64); SLAB_ALLOC1 (type_MM, BISHOP_MM, 64); SLAB_ALLOC2 (uint64, MM_ORTHO, 102400); /* SLAB 800k */ SLAB_ALLOC2 (uint64, MM_DIAG, 5248); #endif SLAB_ALLOC1 (uint64, SqSet, 64); SLAB_ALLOC1 (uint64, SqClear, 64); SLAB_ALLOC1 (uint64, NON_DIAG, 64); SLAB_ALLOC1 (uint64, NON_ORTHO, 64); SLAB_ALLOC1 (uint64, ORTHO, 64); SLAB_ALLOC1 (uint64, DIAG, 64); SLAB_ALLOC1 (uint64, ORTHO_DIAG, 64); SLAB_ALLOC1 (uint64, OpenFileW, 64); SLAB_ALLOC1 (uint64, OpenFileB, 64); SLAB_ALLOC1 (uint64, PassedPawnW, 64); SLAB_ALLOC1 (uint64, PassedPawnB, 64); SLAB_ALLOC1 (uint64, ProtectedPawnW, 64); SLAB_ALLOC1 (uint64, ProtectedPawnB, 64); SLAB_ALLOC1 (uint64, IsolatedPawnW, 64); SLAB_ALLOC1 (uint64, IsolatedPawnB, 64); SLAB_ALLOC1 (uint64, ConnectedPawns, 64); SLAB_ALLOC1 (uint64, InFrontW, 8); SLAB_ALLOC1 (uint64, NotInFrontW, 8); SLAB_ALLOC1 (uint64, InFrontB, 8); SLAB_ALLOC1 (uint64, NotInFrontB, 8); SLAB_ALLOC1 (uint64, IsolatedFiles, 8); SLAB_ALLOC1 (uint64, FilesLeft, 8); SLAB_ALLOC1 (uint64, FilesRight, 8); SLAB_ALLOC1 (uint64, DOUBLED, 64); SLAB_ALLOC1 (uint64, LEFT2, 64); SLAB_ALLOC1 (uint64, RIGHT2, 64); SLAB_ALLOC1 (uint64, LEFT1, 64); SLAB_ALLOC1 (uint64, RIGHT1, 64); SLAB_ALLOC1 (uint64, ADJACENT, 64); SLAB_ALLOC1 (uint64, LONG_DIAG, 64); SLAB_ALLOC1 (uint64, NORTHWEST, 64); SLAB_ALLOC1 (uint64, SOUTHWEST, 64); SLAB_ALLOC1 (uint64, NORTHEAST, 64); SLAB_ALLOC1 (uint64, SOUTHEAST, 64); SLAB_ALLOC1 (uint64, QuadrantWKwtm, 64); SLAB_ALLOC1 (uint64, QuadrantBKwtm, 64); SLAB_ALLOC1 (uint64, QuadrantWKbtm, 64); SLAB_ALLOC1 (uint64, QuadrantBKbtm, 64); SLAB_ALLOC1 (uint64, ShepherdWK, 64); SLAB_ALLOC1 (uint64, ShepherdBK, 64); SLAB_ALLOC3 (uint64, INTERPOSE, 0100 * 0100); SLAB_ALLOC3 (uint64, EVADE, 0100 * 0100); SLAB_ALLOC3 (uint64, ZOBRIST, 0x10 * 0100); SLAB_ALLOC3 (sint8, LINE, 0100 * 0100); SLAB_ALLOC1 (uint64, ZobristCastling, 16); SLAB_ALLOC1 (uint64, ZobristEP, 8); SLAB_ALLOC1 (uint64, ZobristRev, 16); #ifdef MULTIPLE_POS_GAIN SLAB_ALLOC2 (sint16, MAX_POSITIONAL_GAIN, MAX_CPUS * 0x10 * 010000); #else SLAB_ALLOC2 (sint16, MAX_POSITIONAL_GAIN, 0x10 * 010000); /* SLAB 1mb */ #endif #ifdef MULTIPLE_HISTORY SLAB_ALLOC2 (uint16, HISTORY, MAX_CPUS * 0x10 * 0100); /* SLAB 64k */ #else SLAB_ALLOC2 (uint16, HISTORY, 0x10 * 0100); #endif SLAB_ALLOC2 (sint32, PieceSquareValue, 0x10 * 0100); /* SMP read SLAB 16k */ SLAB_ALLOC2 (typeMATERIAL, MATERIAL, 419904); /* SMP read SLAB 1.68mb */ ResetHistory (); ResetPositionalGain (); InitArrays (); InitMaterialValue (); InitStatic (); }
ExTextBox::ExTextBox(int tX, int tY, int tTextColor, int tTextFont, string sLabel, void(*tevent_onClick)(exId)) : ExControl(tX, tY, -1, -1, tevent_onClick) { wstring wLabel; Misc::CharToWide(wLabel, sLabel); InitStatic(tX, tY, tTextColor, tTextFont, wLabel, tevent_onClick); }
ExTextBox::ExTextBox(int tX, int tY, int tTextColor, int tTextFont, wstring szLabel, void(*tevent_onClick)(exId)) : ExControl(tX, tY, -1, -1, tevent_onClick) { InitStatic(tX, tY, tTextColor, tTextFont, szLabel, tevent_onClick); }