~michael-sheldon/jokosher/pyintrospection-gtk3

« back to all changes in this revision

Viewing changes to Jokosher/Event.py

  • Committer: Peteris Krisjanis
  • Date: 2012-01-26 18:15:41 UTC
  • Revision ID: pecisk@gmail.com-20120126181541-zbg4q42wbyve4ffp
Job so far - lot of Gst.State.* changes, working on Event.py GenerateWaveForm and friends.

Show diffs side-by-side

added added

removed removed

Lines of Context:
156
156
                properties.
157
157
                """
158
158
                Globals.debug("create file source")
 
159
                
 
160
                compositionElements = self.instrument.composition.iterate_elements()
 
161
                iteratorAnswer, compositionElement = compositionElements.next()
 
162
                compositionElementsList = []
 
163
                while(compositionElement != None):
 
164
                        compositionElementsList.append(compositionElement)
 
165
                        iteratorAnswer, compositionElement = compositionElements.next()
 
166
                
159
167
                if not self.gnlsrc:
160
 
                        self.gnlsrc = Gst.element_factory_make("gnlsource", "Event_%d"%self.id)
161
 
                if not self.gnlsrc in list(self.instrument.composition.elements()):
 
168
                        self.gnlsrc = Gst.ElementFactory.make("gnlsource", "Event_%d"%self.id)
 
169
                if not self.gnlsrc in compositionElementsList:
162
170
                        self.instrument.composition.add(self.gnlsrc)
163
 
 
 
171
                
164
172
                self.SetProperties()
 
173
                Globals.debug("finish file source")
165
174
 
166
175
        #_____________________________________________________________________
167
176
 
181
190
                if self.file:
182
191
                        if self.single_decode_bin:
183
192
                                self.gnlsrc.remove(self.single_decode_bin)
184
 
                                self.single_decode_bin.set_state(Gst.STATE_NULL)
 
193
                                self.single_decode_bin.set_state(Gst.State.NULL)
185
194
 
186
195
                        Globals.debug("creating SingleDecodeBin")
187
196
                        caps = Gst.caps_from_string("audio/x-raw-int;audio/x-raw-float")
188
197
                        f = PlatformUtils.pathname2url(self.GetAbsFile())
189
198
                        Globals.debug("file uri is:", f)
190
 
                        self.single_decode_bin = Gst.element_factory_make("gnlurisource", "singledecodebin")
 
199
                        self.single_decode_bin = Gst.ElementFactory.make("gnlurisource", "singledecodebin")
191
200
                        # self.single_decode_bin = SingleDecodeBin(caps=caps, uri=f)
192
201
                        self.single_decode_bin.set_property("uri", f)
193
202
                        self.single_decode_bin.set_property("caps", caps)
644
653
                """
645
654
                if not self.isLoading:
646
655
                        return False
647
 
 
648
 
                st = message.structure
 
656
                
 
657
                st = message.get_structure()
 
658
                
649
659
                if not st:
650
660
                        return False
651
661
 
652
662
                if st.get_name().startswith('missing-'):
653
 
                        self.loadingPipeline.set_state(Gst.STATE_NULL)
 
663
                        self.loadingPipeline.set_state(Gst.State.NULL)
654
664
                        Utils.HandleGstPbutilsMissingMessage(message, self.install_plugin_cb)
655
665
 
656
666
                elif st.get_name() == "level":
793
803
                """
794
804
                pipe = """filesrc name=src ! decodebin ! audioconvert ! level message=true name=level_element ! fakesink"""
795
805
                self.loadingPipeline = Gst.parse_launch(pipe)
796
 
 
 
806
                #self.loadingPipeline = Gst.parse_launch(pipe)
 
807
                #parse_bin_from_description
 
808
                # print self.loadingPipeline
 
809
                
797
810
                filesrc = self.loadingPipeline.get_by_name("src")
798
811
                level = self.loadingPipeline.get_by_name("level_element")
799
812
 
800
813
                filesrc.set_property("location", self.GetAbsFile())
801
814
                level.set_property("interval", int(self.LEVEL_INTERVAL * Gst.SECOND))
802
 
 
 
815
                Globals.debug("First level of the pain")
803
816
                self.bus = self.loadingPipeline.get_bus()
804
817
                self.bus.add_signal_watch()
805
818
                self.bus.connect("message::element", self.bus_message)
807
820
                self.bus.connect("message::state-changed", self.bus_message_statechange)
808
821
                self.bus.connect("message::eos", self.bus_eos)
809
822
                self.bus.connect("message::error", self.bus_error)
810
 
 
 
823
                Globals.debug("Second level of the pain")       
811
824
                self.levels_list = LevelsList.LevelsList()
812
825
                self.isLoading = True
813
826
                self.emit("loading")
814
827
 
815
 
                self.loadingPipeline.set_state(Gst.STATE_PLAYING)
 
828
                self.loadingPipeline.set_state(Gst.State.PLAYING)
816
829
 
817
830
        #_____________________________________________________________________
818
831
 
853
866
                self.isLoading = True
854
867
                self.emit("loading")
855
868
 
856
 
                self.loadingPipeline.set_state(Gst.STATE_PLAYING)
 
869
                self.loadingPipeline.set_state(Gst.State.PLAYING)
857
870
 
858
871
                return True
859
872
 
871
884
                        self.bus.remove_signal_watch()
872
885
                        self.bus = None
873
886
                if self.loadingPipeline:
874
 
                        self.loadingPipeline.set_state(Gst.STATE_NULL)
 
887
                        self.loadingPipeline.set_state(Gst.State.NULL)
875
888
 
876
889
                        if finishedLoading and self.levels_list:
877
890
                                self.levels_list.tofile(self.GetAbsLevelsFile())
942
955
                # work around GStreamer bug where stream time will be -1 (indicating error)
943
956
                # and then cast to guint64 which results in the maximum 64-bit integer value.
944
957
                # In this case stream-time and endtime are bogus values, but duration is still correct.
945
 
                stream_time = structure["stream-time"]
 
958
                stream_time = structure.get_value("stream-time")
946
959
                if stream_time == ((2**64) - 1):
947
960
                        delta = int(structure["duration"] / Utils.NANO_TO_MILLI_DIVISOR)
948
961
                        self.levels_list.append_time_delta(delta, peaks)