1 /*
2  * Copyright (C) 2018 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #include <stddef.h>
18 
19 #include <audio_utils/roundup.h>
20 #include <media/nblog/Timeline.h>
21 
22 namespace android {
23 namespace NBLog {
24 
25 #if 0   // FIXME see note in Timeline.h
26 NBLog::Timeline::Timeline(size_t size, void *shared)
27     : mSize(roundup(size)), mOwn(shared == NULL),
28       mShared((Shared *) (mOwn ? new char[sharedSize(size)] : shared))
29 {
30     new (mShared) Shared;
31 }
32 
33 NBLog::Timeline::~Timeline()
34 {
35     mShared->~Shared();
36     if (mOwn) {
37         delete[] (char *) mShared;
38     }
39 }
40 #endif
41 
42 /*static*/
sharedSize(size_t size)43 size_t Timeline::sharedSize(size_t size)
44 {
45     // TODO fifo now supports non-power-of-2 buffer sizes, so could remove the roundup
46     return sizeof(Shared) + roundup(size);
47 }
48 
49 }   // namespace NBLog
50 }   // namespace android
51