| 41 | } |
| 42 | |
| 43 | static int Resource_GetMounts(lua_State* L) |
| 44 | { |
| 45 | DM_LUA_STACK_CHECK(L, 1); |
| 46 | |
| 47 | dmResourceMounts::HContext mounts = dmResource::GetMountsContext(g_LUScriptCtx.m_Factory); |
| 48 | dmMutex::HMutex mutex = dmResourceMounts::GetMutex(mounts); |
| 49 | DM_MUTEX_SCOPED_LOCK(mutex); |
| 50 | |
| 51 | uint32_t count = dmResourceMounts::GetNumMounts(mounts); |
| 52 | |
| 53 | lua_createtable(L, count, 0); |
| 54 | |
| 55 | for (uint32_t i = 0; i < count; ++i) |
| 56 | { |
| 57 | dmResourceMounts::SGetMountResult info; |
| 58 | dmResource::Result result = dmResourceMounts::GetMountByIndex(mounts, i, &info); |
| 59 | if (dmResource::RESULT_OK == result) |
| 60 | { |
| 61 | dmURI::Parts uri; |
| 62 | dmResourceProvider::GetUri(info.m_Archive, &uri); |
| 63 | |
| 64 | lua_pushinteger(L, i+1); |
| 65 | lua_newtable(L); |
| 66 | |
| 67 | lua_pushinteger(L, info.m_Priority); |
| 68 | lua_setfield(L, -2, "priority"); |
| 69 | |
| 70 | dmScript::PushHash(L, info.m_NameHash); |
| 71 | lua_setfield(L, -2, "name"); |
| 72 | |
| 73 | if (uri.m_Location[0] == '\0') |
| 74 | lua_pushfstring(L, "%s:%s", uri.m_Scheme, uri.m_Path); |
| 75 | else |
| 76 | lua_pushfstring(L, "%s:%s/%s", uri.m_Scheme, uri.m_Location, uri.m_Path); |
| 77 | lua_setfield(L, -2, "uri"); |
| 78 | |
| 79 | lua_settable(L, -3); |
| 80 | } |
| 81 | } |
| 82 | |
| 83 | return 1; |
| 84 | } |
| 85 | |
| 86 | // ********************* |
| 87 |
nothing calls this directly
no test coverage detected