14510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunk/*
24510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunk * Copyright 2014 The Android Open Source Project
34510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunk *
44510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunk * Licensed under the Apache License, Version 2.0 (the "License");
54510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunk * you may not use this file except in compliance with the License.
64510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunk * You may obtain a copy of the License at
74510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunk *
84510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunk *      http://www.apache.org/licenses/LICENSE-2.0
94510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunk *
104510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunk * Unless required by applicable law or agreed to in writing, software
114510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunk * distributed under the License is distributed on an "AS IS" BASIS,
124510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunk * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
134510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunk * See the License for the specific language governing permissions and
144510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunk * limitations under the License.
154510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunk */
164510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunk
174510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunk#ifndef IMG_UTILS_STRIP_SOURCE_H
184510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunk#define IMG_UTILS_STRIP_SOURCE_H
194510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunk
204510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunk#include <img_utils/Output.h>
214510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunk
224510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunk#include <cutils/compiler.h>
234510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunk#include <utils/Errors.h>
244510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunk
254510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunk#include <stdint.h>
264510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunk
274510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunknamespace android {
284510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunknamespace img_utils {
294510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunk
304510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunk/**
314510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunk * This class acts as a data source for strips set in a TiffIfd.
324510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunk */
334510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunkclass ANDROID_API StripSource {
344510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunk    public:
354510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunk        virtual ~StripSource();
364510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunk
374510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunk        /**
384510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunk         * Write count bytes to the stream.
394510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunk         *
404510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunk         * Returns OK on success, or a negative error code.
414510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunk         */
424510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunk        virtual status_t writeToStream(Output& stream, uint32_t count) = 0;
434510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunk
444510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunk        /**
454510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunk         * Return the source IFD.
464510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunk         */
474510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunk        virtual uint32_t getIfd() const = 0;
484510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunk};
494510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunk
504510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunk} /*namespace img_utils*/
514510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunk} /*namespace android*/
524510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunk
534510de26e5361f3a9f07057ec6f26483c888c1faRuben Brunk#endif /*IMG_UTILS_STRIP_SOURCE_H*/
54