~photostory/photostory/cleanup

« back to all changes in this revision

Viewing changes to app.py

  • Committer: David
  • Date: 2010-07-26 03:44:11 UTC
  • Revision ID: david@david-laptop-20100726034411-4lp9vctobx6phohp
Oops, didn't actually change app.py.  It should be correct this time.

Show diffs side-by-side

added added

removed removed

Lines of Context:
23
23
        pipeline = None
24
24
        xvimagesink = None
25
25
        movie = None
26
 
        pic=None
 
26
        self.pic=None
27
27
        self.db = cPickle.load(open('data/db', 'rb'))
28
28
        self.ind = int(cPickle.load(open('data/num', 'rb')))
29
29
        todayPicName = "pictures/" + str(self.ind) + ".png"
31
31
 
32
32
        def chooseDay(cal):
33
33
            dateTuple = cal.get_date()
34
 
            if dateTuple in self.db:
35
 
                pic.set_from_file(self.db[dateTuple])
36
 
            else:
37
 
                pic.set_from_file("data/nopic.png")
 
34
            setPic(dateTuple)
38
35
 
39
36
        def closedown(win):
40
37
            print 'ind ' + str(self.ind)
125
122
            stillPipe.set_state(gst.STATE_NULL)
126
123
            xvimagesink.set_xwindow_id(movie.window.xid)
127
124
            pipeline.set_state(gst.STATE_PLAYING)
128
 
            pic.set_from_file(todayPicName)
 
125
            setPic(todayPicName)
129
126
            self.ind += 1
130
127
            takeBut.set_label("Picture taken this day.")
131
128
            takeBut.set_sensitive(False)
136
133
            date = cal.get_date()
137
134
            if date in self.db:
138
135
                os.remove(self.db[date])
139
 
                pic.set_from_file("data/nopic.png")
 
136
                setPic("")
140
137
                if date == todayDate:
141
138
                    takeBut.set_label("Take today's picture")
142
139
                    takeBut.set_sensitive(True)
157
154
                del self.db[date]
158
155
                self.ind -= 1
159
156
 
 
157
        def setPic(date):
 
158
            if self.pic != None:
 
159
                vbox1.remove(self.pic)
 
160
                vbox1.remove(hbox2)
 
161
            if date in self.db:
 
162
                self.pic = gtk.Image()
 
163
                self.pic.set_from_file(self.db[date])
 
164
                takeBut.set_label("Picture taken for this day.")
 
165
                takeBut.set_sensitive(False)
 
166
            else: 
 
167
                self.pic = gtk.Label()
 
168
                self.pic.set_justify(gtk.JUSTIFY_CENTER)
 
169
                self.pic.set_markup("<span size='54000' foreground='#616161'>No Picture\nToday</span>");
 
170
                self.pic.set_size_request(640, 480)
 
171
            vbox1.pack_start(self.pic)
 
172
            vbox1.pack_start(hbox2)
 
173
            vbox1.show_all()
 
174
 
160
175
        #Interface
161
176
        win = gtk.Window(gtk.WINDOW_TOPLEVEL)
162
177
        win.connect("destroy", closedown)
176
191
        hbox2 = gtk.HBox(homogeneous=True)
177
192
        aboutBut = gtk.Button(label="About")
178
193
        aboutBut.connect("clicked", about)
179
 
        pic = gtk.Image()
 
194
            
180
195
        cal = gtk.Calendar()
181
196
        todayDate = cal.get_date()
182
197
        cal.connect("day-selected", chooseDay)
 
198
        
183
199
        takeBut = gtk.Button(label="Take today's picture")
184
200
        takeBut.connect("clicked", capture)
 
201
        
 
202
        setPic(todayDate)
 
203
        
185
204
        win.add(hbox)
186
205
        hbox.pack_start(vbox1, expand=False)
187
206
        hbox.pack_start(vbox2)
188
 
        vbox1.pack_start(pic)
189
 
        vbox1.pack_start(hbox2)
190
207
        hbox2.pack_start(filmBut, expand=False)
191
208
        hbox2.pack_start(deleteBut, expand=False)
192
209
        #hbox2.pack_start(shareBut)
195
212
        vbox2.pack_start(movie)
196
213
        vbox2.pack_start(cal, expand=False, padding=50)
197
214
        vbox2.pack_start(takeBut, expand=False)
198
 
        if todayDate in self.db:
199
 
            pic.set_from_file(self.db[todayDate])
200
 
            takeBut.set_label("Picture taken for this day.")
201
 
            takeBut.set_sensitive(False)
202
 
        else:
203
 
            pic.set_from_file("data/nopic.png")
204
215
 
205
216
        win.show_all()
206
217
 
209
220
 
210
221
        camera = gst.element_factory_make("v4l2src", "camera")
211
222
        camera.set_property("device", "/dev/video0")
212
 
 
 
223
        
213
224
        caps = gst.Caps("video/x-raw-yuv,width=640,height=480,framerate=30/1")
214
225
        filt = gst.element_factory_make("capsfilter", "filter")
215
226
        filt.set_property("caps", caps)
222
233
        xvimagesink.set_xwindow_id(movie.window.xid)
223
234
 
224
235
        pipeline.set_state(gst.STATE_PLAYING)
225
 
        
226
236
 
227
237
start=Main()
228
238
gtk.main()