diff --git a/livesupport/modules/storageServer/var/GreenBox.php b/livesupport/modules/storageServer/var/GreenBox.php index 69c84fa6e..6f421797b 100644 --- a/livesupport/modules/storageServer/var/GreenBox.php +++ b/livesupport/modules/storageServer/var/GreenBox.php @@ -23,7 +23,7 @@ Author : $Author: tomas $ - Version : $Revision: 1.52 $ + Version : $Revision: 1.53 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/storageServer/var/GreenBox.php,v $ ------------------------------------------------------------------------------*/ @@ -35,7 +35,7 @@ require_once "BasicStor.php"; * LiveSupport file storage module * * @author $Author: tomas $ - * @version $Revision: 1.52 $ + * @version $Revision: 1.53 $ * @see BasicStor */ class GreenBox extends BasicStor{ @@ -506,6 +506,9 @@ class GreenBox extends BasicStor{ } $res = $pl->addAudioClip($acId, $fadeIn, $fadeOut); if(PEAR::isError($res)) return $res; + // recalculate offsets and total length: + $r = $pl->recalculateTimes(); + if(PEAR::isError($r)){ return $r; } return $res; } @@ -513,9 +516,7 @@ class GreenBox extends BasicStor{ * Remove audioclip from playlist * * @param token string, playlist access token - * * @param plElGunid string, global id of deleted playlistElement - * * @param sessid string, session ID * @return boolean */ @@ -526,11 +527,14 @@ class GreenBox extends BasicStor{ if(PEAR::isError($pl)) return $pl; $res = $pl->delAudioClip($plElGunid); if(PEAR::isError($res)) return $res; + // recalculate offsets and total length: + $r = $pl->recalculateTimes(); + if(PEAR::isError($r)){ return $r; } return $res; } /** - * Change fadInfo values + * Change fadeInfo values * * @param token string, playlist access token * @param plElGunid string, global id of deleted playlistElement @@ -546,7 +550,32 @@ class GreenBox extends BasicStor{ if(PEAR::isError($pl)) return $pl; $res = $pl->changeFadeInfo($plElGunid, $fadeIn, $fadeOut); if(PEAR::isError($res)) return $res; - return $res; + // recalculate offsets and total length: + $r = $pl->recalculateTimes(); + if(PEAR::isError($r)){ return $r; } + return TRUE; + } + + /** + * Move audioClip to the new position in the playlist + * + * @param token string, playlist access token + * @param plElGunid string, global id of deleted playlistElement + * @param newPos int - new position in playlist + * @param sessid string, session ID + * @return boolean + */ + function moveAudioClipInPlaylist($token, $plElGunid, $newPos, $sessid) + { + require_once"Playlist.php"; + $pl =& Playlist::recallByToken($this, $token); + if(PEAR::isError($pl)) return $pl; + $res = $pl->moveAudioClip($plElGunid, $newPos); + if(PEAR::isError($res)) return $res; + // recalculate offsets and total length: + $r = $pl->recalculateTimes(); + if(PEAR::isError($r)){ return $r; } + return TRUE; } /** diff --git a/livesupport/modules/storageServer/var/Playlist.php b/livesupport/modules/storageServer/var/Playlist.php index d17724dc2..0ca09cd33 100644 --- a/livesupport/modules/storageServer/var/Playlist.php +++ b/livesupport/modules/storageServer/var/Playlist.php @@ -23,7 +23,7 @@ Author : $Author: tomas $ - Version : $Revision: 1.5 $ + Version : $Revision: 1.6 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/storageServer/var/Playlist.php,v $ ------------------------------------------------------------------------------*/ @@ -303,9 +303,6 @@ class Playlist extends StoredFile{ $r = $this->md->insertMetadataEl($acId, 'accessToken', $acToken, 'A'); if(PEAR::isError($r)){ return $r; } */ - // recalculate offsets and total length: - $r = $this->recalculateTimes(); - if(PEAR::isError($r)){ return $r; } return $plElGunid; } @@ -361,9 +358,6 @@ class Playlist extends StoredFile{ " ($plElGunid)" ); } - // recalculate offsets and total length: - $r = $this->recalculateTimes(); - if(PEAR::isError($r)){ return $r; } return TRUE; } @@ -409,8 +403,51 @@ class Playlist extends StoredFile{ $fadeOutId, $fadeOut, $fiMid, 'fadeOut'); if(PEAR::isError($r)){ return $r; } } - $r = $this->recalculateTimes(); - if(PEAR::isError($r)){ return $r; } + return TRUE; + } + + /** + * Move audioClip to the new position in the playlist + * + * @param plElGunid string - playlistElement gunid + * @param newPos int - new position in playlist + * @return + */ + function moveAudioClip($plElGunid, $newPos) + { + $plGunid = $this->gunid; + $arr = $this->md->genPhpArray(); + $els =& $arr['children']; + foreach($els as $i=>$el){ + if($el['elementname'] != 'playlistelement'){ + $metadata = array_splice($els, $i, 1); + continue; + } + } + foreach($els as $i=>$el){ + if($el['attrs']['id'] == $plElGunid){ + $movedi = $i; + } + $r = $this->delAudioClip($el['attrs']['id']); + if(PEAR::isError($r)){ return $r; } + } + $movedel = array_splice($els, $movedi, 1); + array_splice($els, $newPos, 0, $movedel); +// var_dump($els); + foreach($els as $i=>$el){ + foreach($el['children'] as $j=>$af){ + if($af['elementname'] == 'audioclip'){ + $acGunid = $af['attrs']['id']; + }elseif($af['elementname'] == 'fadeinfo'){ + $fadeIn = $af['attrs']['fadein']; + $fadeOut = $af['attrs']['fadeout']; + }else{ + } + } + $acId = $this->gb->_idFromGunid($acGunid); + $r = $this->addAudioClip($acId, $fadeIn, $fadeOut); + if(PEAR::isError($r)){ return $r; } + } return TRUE; }