source: pmb4.2/trunk/fuentes/pmb/classes/voxilab/voxilabSegment.class.php @ 815

Last change on this file since 815 was 815, checked in by jrpelegrina, 4 years ago

Initial release of pmb 4.2

  • Property svn:executable set to *
File size: 3.9 KB
Line 
1<?php
2/***********************************************************************************************
3 Ce fichier fait partie du projet voxilabPHP, implémentation PHP de
4l'API Voxilab (https://github.com/voxilab)
5
6Cette  implémentation développée par © 2013- PMB Services.
7
8Ce programme est régi par la licence CeCILL soumise au droit français et
9respectant les principes de diffusion des logiciels libres. Vous pouvez
10utiliser, modifier et/ou redistribuer ce programme sous les conditions
11de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA
12sur le site "http://www.cecill.info".
13
14En contrepartie de l'accessibilité au code source et des droits de copie,
15de modification et de redistribution accordés par cette licence, il n'est
16offert aux utilisateurs qu'une garantie limitée.  Pour les mêmes raisons,
17seule une responsabilité restreinte pèse sur l'auteur du programme,  le
18titulaire des droits patrimoniaux et les concédants successifs.
19
20A cet égard  l'attention de l'utilisateur est attirée sur les risques
21associés au chargement,  à l'utilisation,  à la modification et/ou au
22développement et à la reproduction du logiciel par l'utilisateur étant
23donné sa spécificité de logiciel libre, qui peut le rendre complexe à
24manipuler et qui le réserve donc à des développeurs et des professionnels
25avertis possédant  des  connaissances  informatiques approfondies.  Les
26utilisateurs sont donc invités à charger  et  tester  l'adéquation  du
27logiciel à leurs besoins dans des conditions permettant d'assurer la
28sécurité de leurs systèmes et ou de leurs données et, plus généralement,
29à l'utiliser et l'exploiter dans les mêmes conditions de sécurité.
30
31Le fait que vous puissiez accéder à cet en-tête signifie que vous avez
32pris connaissance de la licence CeCILL, et que vous en avez accepté les
33termes.
34***********************************************************************************************/
35
36/*
37 * A segment : part of the speech identified with an individual speaker
38*
39* $Id: voxilabSegment.class.php,v 1.1 2014-01-10 15:46:42 apetithomme Exp $
40*/
41
42if (stristr ($_SERVER['REQUEST_URI'], ".class.php"))
43        die ("no access");
44
45require_once 'voxilabSpeaker.class.php';
46
47class voxilabSegment
48{
49         /*** Attributes: ***/
50
51        /**
52         * Time at the start (hundredth of a second)
53         * @access private
54         */
55        private $start;
56
57        /**
58         * Duration of the segment (hundredth of a second)
59         * @access private
60         */
61        private $duration;
62
63        /**
64         * Time at the end (hundredth of a second)
65         * @access private
66         */
67        private $end;
68       
69        /**
70         * @var voxilabSpeaker
71         */
72        private $speaker;
73
74
75        /**
76         *
77         *
78         * @param float start Time of start (hundredth of a second)
79
80         * @param float duration Duration of the segment (hundredth of a second)
81
82         * @param voxilabSpeaker speaker Segment speaker
83
84         * @return void
85         * @access public
86         */
87        public function __construct( $start,  $duration,  $speaker ) {
88                $this->start = $start;
89                $this->duration = $duration;
90                $this->speaker = $speaker;
91                $this->getEnd();
92        } // end of member function __construct
93
94
95        /**
96         * Get the time at the end
97         *
98         * @return float
99         * @access public
100         */
101        public function getEnd( ) {
102                if (!$this->end) {
103                        $this->end = $this->start + $this->duration;
104                }
105                return $this->end;
106        } // end of member function getEnd
107
108        public function __toString() {
109                print "Segment [Start : ".$this->start.". End : ".$this->end.". Duration : ".$this->duration.". Speaker : ".$this->speaker->getID().".]<br />";
110        }
111       
112        public function getStart() {
113                return $this->start;
114        }
115       
116        public function getDuration() {
117                return $this->duration;
118        }
119       
120        public function getSpeaker() {
121                return $this->speaker;
122        }
123       
124        /**
125         * Encode the segment into Json
126         * @return string
127         */
128        public function toJson() {
129                $array = array(
130                                'start' => $this->start,
131                                'duration' => $this->duration,
132                                'speaker' => array(
133                                                'id' => $this->speaker->getID(),
134                                                'gender' => $this->speaker->getGender()
135                                                )
136                                );
137                return json_encode($array);
138        }
139
140} // end of voxilabSegment
141?>
Note: See TracBrowser for help on using the repository browser.