123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- namespace Publicate {
- public interface Savable : Object {
- public abstract void save_asset(Ppub.Builder builder) throws Error;
- }
- public class SavableAsset : Object, Savable {
- private Ppub.Publication publication;
- private Ppub.Asset asset;
- public SavableAsset(Ppub.Publication origin, Ppub.Asset asset) {
- publication = origin;
- this.asset = asset;
- }
- public void save_asset(Ppub.Builder builder) throws Error {
- var stream = publication.read_asset(asset.name);
- var compression_policy = Ppub.CompressionPolicy.AUTO;
- if(asset.mimetype.has_prefix("video/")) {
- compression_policy = Ppub.CompressionPolicy.NEVER_COMPRESS;
- }
- var compression = new Ppub.CompressionInfo(stream, compression_policy);
- stream = publication.read_asset(asset.name);
- builder.add_asset(asset.name, asset.mimetype, stream, Invercargill.empty<string>(), compression);
- }
- }
- public class SavableNewAsset : Object, Savable {
- private string name;
- private string mimetype;
- private InputStream stream;
- private Ppub.CompressionInfo compression;
- public SavableNewAsset(string name, string mimetype, InputStream stream, Ppub.CompressionInfo compression) {
- this.name = name;
- this.mimetype = mimetype;
- this.stream = stream;
- this.compression = compression;
- }
- public void save_asset(Ppub.Builder builder) throws Error {
- builder.add_asset(name, mimetype, stream, Invercargill.empty<string>(), compression);
- }
- }
- }
|