initial code generation/formatting for Asset subsystem

This commit is contained in:
Fischlurch 2007-09-02 18:48:22 +02:00
parent 85a8f87245
commit 2e390f1b05
31 changed files with 1336 additions and 16 deletions

69
src/proc/asset.cpp Normal file
View file

@ -0,0 +1,69 @@
/*
Asset} - Superinterface: bookeeping view of "things" present in the session
Copyright (C) CinelerraCV
2007, Christian Thaeter <ct@pipapo.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
* *****************************************************/
#include "proc/asset.hpp"
#include "proc/asset/category.hpp"
namespace proc_interface
{
/**
* List of entities this asset depends on or requires to be functional. May be empty. The head of this list can be considered the primary prerequisite
*/
vector<PAsset>
Asset::getParents ()
{
}
/**
* All the other assets requiring this asset to be functional. For example, all the clips depending on a given media file. May be empty. The dependency relation is transitive.
*/
vector<PAsset>
Asset::getDependant ()
{
}
/**
* weather this asset is swithced on and consequently included in the fixture and participates in rendering
*/
bool
Asset::isActive ()
{
}
/**
* change the enabled status of this asset. Note the corresponding #isActive predicate may depend on the enablement status of parent assets as well
*/
void
Asset::enable () throw(cinelerra::error::State)
{
}
} // namespace proc_interface

125
src/proc/asset.hpp Normal file
View file

@ -0,0 +1,125 @@
/*
ASSET.hpp - Superinterface: bookeeping view of "things" present in the session
Copyright (C) CinelerraCV
2007, Christian Thaeter <ct@pipapo.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef PROC_INTERFACE_ASSET_H
#define PROC_INTERFACE_ASSET_H
#include <string>
#include <vector>
#include <set>
#include "common/error.hpp"
using std::string;
using std::vector;
using std::set;
namespace asset { class Category; }
namespace proc_interface
{
typedef void* PAsset; //////TODO
/**
* Superinterface describing especially the bookeeping properties of Assets
*/
class Asset
{
public:
/** Asset primary key. */
const long id;
/** element ID, comprehensible but sanitized.
* The tuple (category, name, org) is unique.
*/
const string name;
/**primary tree like classification of the asset */
const asset::Category* category;
/** origin or authorship id.
* Can be a project abbreviation, a package id or just the authors nickname or UID.
* This allows for the compnent name to be more generic (e.g. "blur").
* Default for all assets provided by the core cinelerra-3 codebase is "cin3".
*/
const string org;
/** version number of the thing or concept represented by this asset.
* Of each unique tuple (name, category, org) there will be only one version
* in the whole system. Version 0 is reserved for internal purposes.
* Versions are considered to be ordered, and any higher version is
* supposed to be fully backwards compatible to all previous versions.
*/
const unsigned int version;
protected:
/** additional classification, selections or departments this asset belongs to.
* Groups are optional, non-exclusive and may be overlapping.
*/
set<string> groups;
/** user visible Name-ID. To be localized. */
const string shortDesc;
/** user visible qualification of the thing, unit or concept represented by this asset.
* perferably "in one line". To be localized. */
const string longDesc;
public:
/** List of entities this asset depends on or requires to be functional.
* May be empty. The head of this list can be considered the primary prerequisite
*/
vector<PAsset> getParents () ;
/** All the other assets requiring this asset to be functional.
* For example, all the clips depending on a given media file.
* May be empty. The dependency relation is transitive.
*/
vector<PAsset> getDependant () ;
/** weather this asset is swithced on and consequently
* included in the fixture and participates in rendering
*/
bool isActive () ;
/** change the enabled status of this asset.
* Note the corresponding #isActive predicate may
* depend on the enablement status of parent assets as well
*/
void enable () throw(cinelerra::error::State);
};
} // namespace proc_interface
namespace asset
{
using proc_interface::Asset;
}
#endif

View file

@ -0,0 +1,31 @@
/*
Category - tree like classification of Assets
Copyright (C) CinelerraCV
2007, Christian Thaeter <ct@pipapo.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
* *****************************************************/
#include "proc/asset/category.hpp"
namespace asset
{
} // namespace asset

View file

@ -0,0 +1,40 @@
/*
CATEGORY.hpp - tree like classification of Assets
Copyright (C) CinelerraCV
2007, Christian Thaeter <ct@pipapo.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef ASSET_CATEGORY_H
#define ASSET_CATEGORY_H
namespace asset
{
/**
* tree like classification of Assets
*/
class Category
{};
} // namespace asset
#endif

33
src/proc/asset/clip.cpp Normal file
View file

@ -0,0 +1,33 @@
/*
Clip(Asset) - bookkeeping (asset) view of a media clip.
Copyright (C) CinelerraCV
2007, Christian Thaeter <ct@pipapo.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
* *****************************************************/
#include "proc/asset/clip.hpp"
namespace asset
{
/** */
} // namespace asset

47
src/proc/asset/clip.hpp Normal file
View file

@ -0,0 +1,47 @@
/*
CLIP.hpp - bookkeeping (asset) view of a media clip.
Copyright (C) CinelerraCV
2007, Christian Thaeter <ct@pipapo.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef ASSET_CLIP_H
#define ASSET_CLIP_H
#include "proc/asset/media.hpp"
namespace asset
{
/**
* bookkeeping (Asset) view of a media clip.
*/
class Clip : public Media
{
protected:
/**media source of this clip */
const Media* source;
};
} // namespace asset
#endif

31
src/proc/asset/codec.cpp Normal file
View file

@ -0,0 +1,31 @@
/*
Codec(Asset) - description of some media data decoder or encoder facility
Copyright (C) CinelerraCV
2007, Christian Thaeter <ct@pipapo.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
* *****************************************************/
#include "proc/asset/codec.hpp"
namespace asset
{
} // namespace asset

45
src/proc/asset/codec.hpp Normal file
View file

@ -0,0 +1,45 @@
/*
CODEC.hpp - description of some media data decoder or encoder facility
Copyright (C) CinelerraCV
2007, Christian Thaeter <ct@pipapo.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef ASSET_CODEC_H
#define ASSET_CODEC_H
#include "proc/asset/proc.hpp"
namespace asset
{
/**
* description of some media data decoder or encoder facility
*/
class Codec : public Proc
{
};
} // namespace asset
#endif

View file

@ -0,0 +1,31 @@
/*
Dataset - meta asset describing a collection of control data
Copyright (C) CinelerraCV
2007, Christian Thaeter <ct@pipapo.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
* *****************************************************/
#include "proc/asset/dataset.hpp"
namespace asset
{
} // namespace asset

View file

@ -0,0 +1,42 @@
/*
DATASET.hpp - meta asset describing a collection of control data
Copyright (C) CinelerraCV
2007, Christian Thaeter <ct@pipapo.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef ASSET_DATASET_H
#define ASSET_DATASET_H
#include "proc/asset/meta.hpp"
namespace asset
{
/**
* meta asset describing a collection of control data
*/
class Dataset : public Meta
{};
} // namespace asset
#endif

31
src/proc/asset/effect.cpp Normal file
View file

@ -0,0 +1,31 @@
/*
Effect(Asset) - Effect or media processing component
Copyright (C) CinelerraCV
2007, Christian Thaeter <ct@pipapo.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
* *****************************************************/
#include "proc/asset/effect.hpp"
namespace asset
{
} // namespace asset

45
src/proc/asset/effect.hpp Normal file
View file

@ -0,0 +1,45 @@
/*
EFFECT.hpp - Effect or media processing component
Copyright (C) CinelerraCV
2007, Christian Thaeter <ct@pipapo.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef ASSET_EFFECT_H
#define ASSET_EFFECT_H
#include "proc/asset/proc.hpp"
namespace asset
{
/**
* Effect or media processing component
*/
class Effect : public Proc
{
};
} // namespace asset
#endif

33
src/proc/asset/media.cpp Normal file
View file

@ -0,0 +1,33 @@
/*
Media(Asset) - key abstraction: media-like assets
Copyright (C) CinelerraCV
2007, Christian Thaeter <ct@pipapo.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
* *****************************************************/
#include "proc/asset/media.hpp"
namespace asset
{
/** */
} // namespace asset

46
src/proc/asset/media.hpp Normal file
View file

@ -0,0 +1,46 @@
/*
MEDIA.hpp - key abstraction: media-like assets
Copyright (C) CinelerraCV
2007, Christian Thaeter <ct@pipapo.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef ASSET_MEDIA_H
#define ASSET_MEDIA_H
#include "proc/asset.hpp"
namespace asset
{
/**
* key abstraction: media-like assets
*/
class Media : public proc_interface::Asset
{
};
} // namespace asset
#endif

33
src/proc/asset/meta.cpp Normal file
View file

@ -0,0 +1,33 @@
/*
Meta(Asset) - key abstraction: metadata and organisational asset
Copyright (C) CinelerraCV
2007, Christian Thaeter <ct@pipapo.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
* *****************************************************/
#include "proc/asset/meta.hpp"
namespace asset
{
/** */
} // namespace asset

46
src/proc/asset/meta.hpp Normal file
View file

@ -0,0 +1,46 @@
/*
META.hpp - key abstraction: metadata and organisational asset
Copyright (C) CinelerraCV
2007, Christian Thaeter <ct@pipapo.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef ASSET_META_H
#define ASSET_META_H
#include "proc/asset.hpp"
namespace asset
{
/**
* key abstraction: metadata and organisational asset
*/
class Meta : public proc_interface::Asset
{
};
} // namespace asset
#endif

View file

@ -0,0 +1,31 @@
/*
OutPort - structural asset corresponding to some port generating media output
Copyright (C) CinelerraCV
2007, Christian Thaeter <ct@pipapo.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
* *****************************************************/
#include "proc/asset/outport.hpp"
namespace asset
{
} // namespace asset

View file

@ -0,0 +1,46 @@
/*
OUTPORT.hpp - structural asset corresponding to some port generating media output
Copyright (C) CinelerraCV
2007, Christian Thaeter <ct@pipapo.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef ASSET_OUTPORT_H
#define ASSET_OUTPORT_H
#include "proc/asset/struct.hpp"
namespace asset
{
/**
* structural asset corresponding to some port generating media output
*/
class OutPort : public Struct
{
};
} // namespace asset
#endif

View file

@ -0,0 +1,31 @@
/*
Preview(Asset) - alternative version of the media data, probably with lower resolution
Copyright (C) CinelerraCV
2007, Christian Thaeter <ct@pipapo.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
* *****************************************************/
#include "proc/asset/preview.hpp"
namespace asset
{
} // namespace asset

View file

@ -0,0 +1,45 @@
/*
PREVIEW.hpp - alternative version of the media data, probably with lower resolution
Copyright (C) CinelerraCV
2007, Christian Thaeter <ct@pipapo.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef ASSET_PREVIEW_H
#define ASSET_PREVIEW_H
#include "proc/asset/media.hpp"
namespace asset
{
/**
* alternative version of the media data, probably with lower resolution
*/
class Preview : public Media
{
};
} // namespace asset
#endif

33
src/proc/asset/proc.cpp Normal file
View file

@ -0,0 +1,33 @@
/*
Proc(Asset) - key abstraction: media-like assets
Copyright (C) CinelerraCV
2007, Christian Thaeter <ct@pipapo.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
* *****************************************************/
#include "proc/asset/proc.hpp"
namespace asset
{
/** */
} // namespace asset

46
src/proc/asset/proc.hpp Normal file
View file

@ -0,0 +1,46 @@
/*
PROC.hpp - key abstraction: media-like assets
Copyright (C) CinelerraCV
2007, Christian Thaeter <ct@pipapo.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef ASSET_PROC_H
#define ASSET_PROC_H
#include "proc/asset.hpp"
namespace asset
{
/**
* key abstraction: data processing asset
*/
class Proc : public Asset
{
};
} // namespace asset
#endif

31
src/proc/asset/struct.cpp Normal file
View file

@ -0,0 +1,31 @@
/*
Struct(Asset) - key abstraction: structural asset
Copyright (C) CinelerraCV
2007, Christian Thaeter <ct@pipapo.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
* *****************************************************/
#include "proc/asset/struct.hpp"
namespace asset
{
} // namespace asset

46
src/proc/asset/struct.hpp Normal file
View file

@ -0,0 +1,46 @@
/*
STRUCT.hpp - key abstraction: structural asset
Copyright (C) CinelerraCV
2007, Christian Thaeter <ct@pipapo.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef ASSET_STRUCT_H
#define ASSET_STRUCT_H
#include "proc/asset.hpp"
namespace asset
{
/**
* key abstraction: structural asset
*/
class Struct : public Asset
{
};
} // namespace asset
#endif

33
src/proc/asset/track.cpp Normal file
View file

@ -0,0 +1,33 @@
/*
Track - structural asset holding the configuration of a track in the EDL
Copyright (C) CinelerraCV
2007, Christian Thaeter <ct@pipapo.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
* *****************************************************/
#include "proc/asset/track.hpp"
namespace asset
{
/** */
} // namespace asset

46
src/proc/asset/track.hpp Normal file
View file

@ -0,0 +1,46 @@
/*
TRACK.hpp - structural asset holding the configuration of a track in the EDL
Copyright (C) CinelerraCV
2007, Christian Thaeter <ct@pipapo.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef ASSET_TRACK_H
#define ASSET_TRACK_H
#include "proc/asset/struct.hpp"
namespace asset
{
/**
* Structural Asset holding the configuration of a track in the EDL
*/
class Track : public Struct
{
};
} // namespace asset
#endif

View file

@ -0,0 +1,33 @@
/*
Unknown - placeholder for unknown or unavailable media source
Copyright (C) CinelerraCV
2007, Christian Thaeter <ct@pipapo.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
* *****************************************************/
#include "proc/asset/unknown.hpp"
namespace asset
{
/** */
} // namespace asset

View file

@ -0,0 +1,47 @@
/*
UNKNOWN.hpp - placeholder for unknown or unavailable media source
Copyright (C) CinelerraCV
2007, Christian Thaeter <ct@pipapo.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef ASSET_UNKNOWN_H
#define ASSET_UNKNOWN_H
#include "proc/asset/preview.hpp"
namespace asset
{
/**
* Placeholder Asset for unknown or unavailable media source.
*/
class Unknown : public Preview
{
};
} // namespace asset
#endif

70
src/proc/assetmanager.cpp Normal file
View file

@ -0,0 +1,70 @@
/*
AssetManager - Facade for the Asset subsystem
Copyright (C) CinelerraCV
2007, Christian Thaeter <ct@pipapo.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
* *****************************************************/
#include "proc/assetmanager.hpp"
namespace proc_interface
{
/**
* registers an asset object in the internal DB, providing its unique key
*/
long
AssetManager::reg (string& name, string& category, string& org, uint version)
//throw(cinelerra::error::Invalid)
{
}
/**
* find and return corresponging object
*/
template<class KIND> ////TODO: does this work????
KIND
AssetManager::getAsset (long id) ////throw(cinelerra::Invalid)
{
}
/**
* @return true if the given id is registered in the internal asset DB
*/
bool
AssetManager::known (long id)
{
}
/**
* remove the given asset <i>together with all its dependants</i> from the internal DB
*/
void
AssetManager::remove (long id) /////throw(cinelerra::Invalid, cinelerra::State)
{
}
} // namespace proc_interface

67
src/proc/assetmanager.hpp Normal file
View file

@ -0,0 +1,67 @@
/*
ASSETMANAGER.hpp - Facade for the Asset subsystem
Copyright (C) CinelerraCV
2007, Christian Thaeter <ct@pipapo.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef PROC_INTERFACE_ASSETMANAGER_H
#define PROC_INTERFACE_ASSETMANAGER_H
#include <string>
#include "common/error.hpp"
using std::string;
namespace proc_interface
{
/**
* Facade for the Asset subsystem
*/
class AssetManager
{
int bla;
public:
/** registers an asset object in the internal DB, providing its unique key
*/
static long reg (string& name, string& category, string& org, uint version)
;
// throw(cinelerra::error::Invalid);
/** find and return corresponging object */
template<class KIND>
// void* /////////////////TODO
KIND
getAsset (long id) ;///throw(cinelerra::error::Invalid);
/** @return true if the given id is registered in the internal asset DB */
bool known (long id) ;
/**remove the given asset from the internal DB.
* <i>together with all its dependants</i>
*/
void remove (long id) ;///throw(cinelerra::error::Invalid, cinelerra::error::State);
};
} // namespace proc_interface
#endif

View file

@ -1,27 +1,14 @@
window_sizes 1140 783 270 860 584 120
diagrams
active classdiagram_ref 130309 // Asset Kinds
853 560 100 4 0 2
860 584 100 4 0 0
end
show_stereotypes
selected
package_ref 129 // cinelerra3
package_ref 129 // cinelerra3
open
package_ref 129413 // common
deploymentview_ref 128517 // gen
artifact_ref 135941 // category
artifact_ref 136453 // media
artifact_ref 136581 // proc
artifact_ref 136709 // struct
artifact_ref 136965 // preview
artifact_ref 137093 // unknown
artifact_ref 137221 // effect
artifact_ref 137605 // outport
artifact_ref 137477 // track
deploymentview_ref 128773 // gen
package_ref 129797 // gui
package_ref 128005 // design
class_ref 136453 // Asset
class_ref 136581 // AssetManager
class_ref 136709 // Media