rsThreadIO.cpp revision a09f11d6c641726b61f80c15230a18d31c146fec
1d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams/*
2d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams * Copyright (C) 2009 The Android Open Source Project
3d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams *
4d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams * Licensed under the Apache License, Version 2.0 (the "License");
5d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams * you may not use this file except in compliance with the License.
6d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams * You may obtain a copy of the License at
7d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams *
8d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams *      http://www.apache.org/licenses/LICENSE-2.0
9d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams *
10d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams * Unless required by applicable law or agreed to in writing, software
11d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams * distributed under the License is distributed on an "AS IS" BASIS,
12d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams * See the License for the specific language governing permissions and
14d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams * limitations under the License.
15d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams */
16d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams
17d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams#include "rsContext.h"
18d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams
19d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams#include <utils/Log.h>
20d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams
21d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams#include "rsThreadIO.h"
22d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams
23d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsusing namespace android;
24d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsusing namespace android::renderscript;
25d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams
26d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsThreadIO *android::renderscript::gIO = NULL;
27d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams
28d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsThreadIO::ThreadIO()
29d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{
30d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams    mToCore.init(16 * 1024);
31d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams}
32d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams
33d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsThreadIO::~ThreadIO()
34d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{
35d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams}
36d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams
37a09f11d6c641726b61f80c15230a18d31c146fecJason Samsbool ThreadIO::playCoreCommands(Context *con)
38d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{
39d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams    //LOGE("playCoreCommands 1");
40d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams    uint32_t cmdID = 0;
41d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams    uint32_t cmdSize = 0;
42a09f11d6c641726b61f80c15230a18d31c146fecJason Sams    bool ret = false;
43d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams    while(!mToCore.isEmpty()) {
44a09f11d6c641726b61f80c15230a18d31c146fecJason Sams        ret = true;
45d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams        //LOGE("playCoreCommands 2");
46d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams        const void * data = mToCore.get(&cmdID, &cmdSize);
47d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams        //LOGE("playCoreCommands 3 %i %i", cmdID, cmdSize);
48d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams
49d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams        gPlaybackFuncs[cmdID](con, data);
50d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams        //LOGE("playCoreCommands 4");
51d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams
52d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams        mToCore.next();
53d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams        //LOGE("playCoreCommands 5");
54d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams    }
55a09f11d6c641726b61f80c15230a18d31c146fecJason Sams    return ret;
56d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams}
57d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams
58d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams
59