11 #ifndef HAS_LIBLIVES_H 12 #define HAS_LIBLIVES_H 17 #define LIVES_VERSION_MAJOR 2 22 #define LIVES_VERSION_MINOR 8 27 #define LIVES_VERSION_MICRO 4 32 #define LIVES_CHECK_VERSION(major, minor, micro) (major > LIVES_VERSION_MAJOR || (major == LIVES_VERSION_MAJOR && (minor > LIVES_VERSION_MINOR || (minor == LIVES_VERSION_MINOR && micro >= LIVES_VERSION_MICRO)))) 126 #define LIVES_CHAR_ENCODING_DEFAULT LIVES_CHAR_ENCODING_UTF8 209 #include <inttypes.h> 216 typedef unsigned long ulong;
243 typedef class livesApp livesApp;
248 typedef class set set;
253 typedef class clip clip;
258 typedef class effectKey effectKey;
263 typedef class effectKeyMap effectKeyMap;
268 typedef class effect effect;
274 typedef class player player;
286 typedef class block block;
292 typedef class livesString livesString;
298 typedef list<livesString> livesStringList;
308 class livesString :
public std::string {
312 std::string(str, pos, len) {}
316 template <
class InputIterator>
317 livesString (InputIterator first, InputIterator last,
344 typedef void *(*callback_f)(
void *);
354 typedef list<closure *> closureList;
355 typedef list<closure *>::iterator closureListIterator;
381 typedef bool (*private_callback_f)(_privateInfo *,
void *);
389 typedef bool (*modeChanged_callback_f)(livesApp *, modeChangedInfo *,
void *);
396 typedef bool (*appQuit_callback_f)(livesApp *, appQuitInfo *,
void *);
404 typedef bool (*objectDestroyed_callback_f)(livesApp *,
void *);
434 livesApp(
int argc,
char *argv[]);
447 bool isValid()
const;
453 bool isReady()
const;
460 bool isPlaying()
const;
470 const effectKeyMap& getEffectKeyMap();
475 const player& getPlayer();
480 const multitrack& getMultitrack();
487 bool removeCallback(
ulong id)
const;
544 livesString chooseFileWithPreview(livesString dirname,
lives_filechooser_t chooser_type, livesString title=livesString(
""));
560 clip openFile(livesString fname,
bool with_audio=
true,
double stime=0.,
int frames=0,
bool deinterlace=
false);
570 livesStringList availableSets();
582 livesString chooseSet();
594 bool reloadSet(livesString setname);
603 bool setInteractive(
bool setting);
618 bool deinterlaceOption();
656 closureList& closures();
658 void setClosures(closureList cl);
660 bool setPref(
const char *prefidx,
bool val)
const;
661 bool setPref(
const char *prefidx,
int val)
const;
662 bool setPref(
const char *prefidx,
int bitfield,
bool val)
const;
671 closureList m_closures;
674 effectKeyMap * m_effectKeyMap;
675 multitrack *m_multitrack;
682 void init(
int argc,
char *argv[]);
684 void operator=(livesApp
const&);
685 livesApp(
const livesApp &other);
720 bool isValid()
const;
763 double playbackFPS();
791 int playbackAudioRate();
807 int audioSampleSize();
829 double audioLength();
837 int selectionStart();
862 bool setSelectionStart(
unsigned int start);
871 bool setSelectionEnd(
unsigned int end);
890 bool setIsBackground();
895 inline bool operator==(
const clip& other) {
896 return other.m_uid == m_uid && m_lives == other.m_lives;
911 typedef vector<ulong> clipList;
912 typedef vector<ulong>::iterator clipListIterator;
933 bool isValid()
const;
940 livesString name()
const;
952 bool setName(livesString name=livesString())
const;
965 bool save(livesString name,
bool force_append=
false)
const;
980 unsigned int numClips()
const;
988 clip nthClip(
unsigned int n)
const;
997 int indexOf(clip c)
const;
1004 livesStringList layoutNames(
unsigned int n)
const;
1009 inline bool operator==(
const set& other)
const {
1010 return other.m_lives == m_lives;
1015 set(livesApp *
lives=NULL);
1021 void update_clip_list(
void);
1045 bool isValid()
const;
1050 bool isPlaying()
const;
1056 bool isRecording()
const;
1066 void setSepWin(
bool setting)
const;
1072 bool sepWin()
const;
1080 void setFullScreen(
bool setting)
const;
1086 bool fullScreen()
const;
1096 void setFS(
bool setting)
const;
1121 bool setForegroundClip(clip c)
const;
1130 clip foregroundClip()
const;
1141 bool setBackgroundClip(clip c)
const;
1150 clip backgroundClip()
const;
1166 double setPlaybackStartTime(
double time)
const;
1180 int setVideoPlaybackFrame(
int frame,
bool background=
false)
const;
1197 double videoPlaybackTime(
bool background=
false)
const;
1210 double setAudioPlaybackTime(
double time)
const;
1225 double audioPlaybackTime()
const;
1235 double elapsedTime()
const;
1248 double setCurrentFPS(
double fps)
const;
1258 double currentFPS()
const;
1268 int currentAudioRate()
const;
1297 bool setPingPong(
bool setting)
const;
1308 bool pingPong()
const;
1317 bool resyncFPS()
const;
1323 inline bool operator==(
const player& other)
const {
1324 return other.m_lives == m_lives;
1329 player(livesApp *
lives=NULL);
1345 friend effectKeyMap;
1358 bool isValid()
const;
1384 int numMappedModes();
1395 int setCurrentMode(
int mode);
1413 bool setEnabled(
bool setting);
1431 int appendMapping(effect e);
1444 bool removeMapping(
int mode);
1452 effect at(
int mode);
1457 inline bool operator==(
const effectKey& other) {
1458 return other.m_key == m_key && m_lives == other.m_lives;
1462 effectKey(livesApp *
lives,
int key);
1478 class effectKeyMap {
1487 bool isValid()
const;
1504 effectKey at(
int i)
const;
1513 size_t size()
const;
1518 inline bool operator==(
const effectKeyMap& other)
const {
1519 return other.m_lives == m_lives;
1528 inline effectKey operator [] (
int i)
const {
1529 return effectKey(m_lives, i);
1534 effectKeyMap(livesApp *
lives);
1564 effect(
const livesApp &
lives, livesString hashname,
bool match_full=
false);
1581 effect(
const livesApp &lives, livesString package, livesString fxname, livesString author=livesString(),
int version=0);
1589 bool isValid()
const;
1594 inline bool operator==(
const effect& other) {
1595 return other.m_idx == m_idx && m_lives == other.m_lives;
1600 effect(livesApp *m_lives,
int idx);
1626 bool isValid()
const;
1635 block(multitrack m,
int track,
double time);
1690 bool moveTo(
int track,
double time);
1698 block(multitrack *m=NULL,
ulong uid=0l);
1725 bool isValid()
const;
1731 bool isActive()
const;
1740 bool setCurrentTrack(
int track)
const;
1750 int currentTrack()
const;
1762 double setCurrentTime(
double time)
const;
1774 double currentTime()
const;
1782 livesString trackLabel(
int track)
const;
1793 bool setTrackLabel(
int track, livesString label=livesString())
const;
1837 int addVideoTrack(
bool in_front)
const;
1845 int numVideoTracks()
const;
1852 int numAudioTracks()
const;
1886 block insertBlock(clip c,
bool ignore_selection_limits=
false,
bool without_audio=
false)
const;
1897 livesString wipeLayout(
bool force=
false)
const;
1906 livesString chooseLayout()
const;
1914 livesStringList availableLayouts()
const;
1928 bool reloadLayout(livesString filename)
const;
1945 livesString saveLayout(livesString name)
const;
1961 livesString saveLayout()
const;
1973 clip render(
bool render_audio=
true,
bool normalise_audio=
true)
const;
1983 effect autoTransition()
const;
1992 bool disableAutoTransition()
const;
2004 bool setAutoTransition(effect autotrans)
const;
2009 inline bool operator==(
const multitrack& other)
const {
2010 return m_lives == other.m_lives;
2062 livesString
tmpDir(
const livesApp &lives);
2110 double maxFPS(
const livesApp &lives);
2181 #endif // __cplusplus 2183 #endif //HAS_LIBLIVES_H livesString currentAudioDir(const livesApp &lives)
Definition: liblives.cpp:2248
Definition: liblives.hpp:175
application is processing, commands will be ignored
Definition: liblives.hpp:65
Abort button clicked.
Definition: liblives.hpp:137
livesString tmpDir(const livesApp &lives)
Definition: liblives.cpp:2253
lives_audio_source_t
Definition: liblives.hpp:150
Reset button clicked.
Definition: liblives.hpp:138
8 bit locale file encoding
Definition: liblives.hpp:118
bool sepWinSticky(const livesApp &lives)
Definition: liblives.cpp:2329
No button clicked.
Definition: liblives.hpp:143
application is playing, only player commands will be responded to
Definition: liblives.hpp:64
sent when interface mode changes
Definition: liblives.hpp:102
sent when livesApp object is deleted
Definition: liblives.hpp:104
multitrack mode
Definition: liblives.hpp:53
bool audioFollowsVideoChanges(const livesApp &lives)
Definition: liblives.cpp:2309
file chooser options for single video or audio file
Definition: liblives.hpp:41
bool setMtExitRender(const livesApp &lives, bool setting)
Definition: liblives.cpp:2344
lives_filechooser_t
Definition: liblives.hpp:40
Audio source is external to LiVES.
Definition: liblives.hpp:153
bool setSepWinSticky(const livesApp &lives, bool setting)
Definition: liblives.cpp:2334
sent when app quits
Definition: liblives.hpp:93
clip editor mode
Definition: liblives.hpp:52
Unknown / invalid.
Definition: liblives.hpp:161
lives_endian_t
Definition: liblives.hpp:73
Audio playback is through PulseAudio.
Definition: liblives.hpp:162
lives_insert_mode_t
Definition: liblives.hpp:174
livesString currentVideoLoadDir(const livesApp &lives)
Definition: liblives.cpp:2243
livesApp instance is invalid
Definition: liblives.hpp:61
Definition: liblives.hpp:74
double maxFPS(const livesApp &lives)
Definition: liblives.cpp:2304
bool setAudioFollowsFPSChanges(const livesApp &lives, bool setting)
Definition: liblives.cpp:2324
file system encoding (UTF-8 on windows, local8bit on others)
Definition: liblives.hpp:119
int audioPlayerRate(const livesApp &lives)
Definition: liblives.cpp:2278
Audio source is internal to LiVES.
Definition: liblives.hpp:152
sent when a frame is displayed
Definition: liblives.hpp:83
lives_loop_mode_t
Definition: liblives.hpp:194
lives_audio_player_t
Definition: liblives.hpp:160
Audio playback is through mplayer2.
Definition: liblives.hpp:166
sent after a clip is opened
Definition: liblives.hpp:95
Audio playback is through mplayer.
Definition: liblives.hpp:165
const char * version(void)
Yes button clicked.
Definition: liblives.hpp:142
application is ready for commands
Definition: liblives.hpp:63
inserted blocks gravitate to the left
Definition: liblives.hpp:185
sent after a clip set is opened
Definition: liblives.hpp:99
UTF-8 char encoding.
Definition: liblives.hpp:117
Definition: liblives.hpp:88
lives_dialog_response_t
Definition: liblives.hpp:131
#define LIVES_CHAR_ENCODING_DEFAULT
Definition: liblives.hpp:126
no looping
Definition: liblives.hpp:195
user is previewing an operation, commands will be ignored
Definition: liblives.hpp:66
Unknown / invalid.
Definition: liblives.hpp:151
OK button clicked.
Definition: liblives.hpp:135
both video and audio loop continuously
Definition: liblives.hpp:196
_prefs * prefs
Definition: preferences.h:648
Accept button clicked.
Definition: liblives.hpp:141
lives_callback_t
Definition: liblives.hpp:82
sent after a clip is closed
Definition: liblives.hpp:96
sent after a clip set is closed
Definition: liblives.hpp:100
Definition: liblives.hpp:75
file chooser options for single audio file
Definition: liblives.hpp:42
lives_char_encoding_t
Definition: liblives.hpp:116
lives_mt * multitrack(weed_plant_t *event_list, int orig_file, double fps)
create and return lives_mt struct
Definition: multitrack.c:6115
livesApp instance is invalid
Definition: liblives.hpp:51
video keeps looping until audio playback finishes
Definition: liblives.hpp:197
bool audioFollowsFPSChanges(const livesApp &lives)
Definition: liblives.cpp:2314
#define ulong
Definition: main.h:150
sent when record starts (TODO)
Definition: liblives.hpp:90
int rteKeysVirtual(const livesApp &lives)
Definition: liblives.cpp:2299
sent when a/v playback starts or clip is switched
Definition: liblives.hpp:84
lives_interface_mode_t
Definition: liblives.hpp:50
Retry button clicked.
Definition: liblives.hpp:136
Definition: liblives.cpp:58
bool mtExitRender(const livesApp &lives)
Definition: liblives.cpp:2339
sent when record stops (TODO)
Definition: liblives.hpp:91
lives_status_t
Definition: liblives.hpp:60
Audio playback is through Sox.
Definition: liblives.hpp:164
for internal use
Definition: liblives.hpp:107
lives_audio_source_t audioSource(const livesApp &lives)
Definition: liblives.cpp:2258
application is starting up; not ready
Definition: liblives.hpp:62
Definition: liblives.hpp:85
bool setAudioSource(const livesApp &lives, lives_audio_source_t asrc)
Definition: liblives.cpp:2264
Cancel button clicked.
Definition: liblives.hpp:140
void binding_cb(lives_callback_t cb_type, const char *msgstring, ulong id)
Definition: liblives.cpp:2362
Response not obtained.
Definition: liblives.hpp:134
Audio playback is thorugh Jack.
Definition: liblives.hpp:163
inserted blocks gravitate to the right
Definition: liblives.hpp:186
lives_audio_player_t audioPlayer(const livesApp &lives)
Definition: liblives.cpp:2269
Show details button clicked.
Definition: liblives.hpp:139
lives_gravity_t
Definition: liblives.hpp:183
bool isRealtimeAudioPlayer(lives_audio_player_t player_type)
Definition: liblives.cpp:2289
no gravity
Definition: liblives.hpp:184
INVALID response.
Definition: liblives.hpp:133
bool setAudioFollowsVideoChanges(const livesApp &lives, bool setting)
Definition: liblives.cpp:2319