Gambas-it

Gambas dal mondo esterno => Mailing List => Topic aperto da: vuott - 26 Agosto 2017, 17:56:11

Titolo: Video da una Classe accresce un problema di DrawingArea
Inserito da: vuott - 26 Agosto 2017, 17:56:11
http://gambas.8142.n7.nabble.com/Video-from-Class-feeds-a-DrawingArea-problem-td59987.html
Titolo: Re:Video da una Classe accresce un problema di DrawingArea
Inserito da: vuott - 26 Agosto 2017, 18:00:48
Alla prima proposta di codice dell'autore della discussione, tale ingo, è possibile dare una risposta efficace e risolutiva.

Il codice della Classe principale sarebbe questo:
Codice: [Seleziona]
Public vc As VideoClass


Public Sub Button1_Click()

 If Not Exist("/dev/video0") Then
   Message.Info("WebCam non inserita !")
   Return
 Endif

 vc = New VideoClass
 
 vc.drwArea.Refresh()

End


Il codice della Classe secondaria, chiamata "VideoClass.class" sarebbe questo:
Codice: [Seleziona]
Public hPipe As MediaPipeline
Public hSource As MediaControl
Public hSink As MediaControl
Public hdrwVideo As DrawingArea
Property {drwArea} As DrawingArea


Public Sub _new()
 
 With hdrwVideo = New DrawingArea(fmain)
   .X = 0
   .Y = 0
.W = FMain.W
.H = 400
   .Background = Color.Transparent
 End With
 
  hPipe = New MediaPipeline As "hPipe"
 
  hSource = New MediaControl(hPipe, "v4l2src")
  hSource["device"] = "/dev/video0"
  hSink = New MediaControl(hPipe, "xvimagesink")
  hSource.LinkTo(hSink)
 
  hSink.SetWindow(hdrwVideo)
  hPipe.Play()
 
End

Private Function drwArea_Read() As DrawingArea

  Return hdrwVideo
 
End

Private Sub drwArea_Write(Value As DrawingArea)
 
  hdrwVideo = Value
 
  hSink.SetWindow(hdrwVideo)

End
Titolo: Re:Video da una Classe accresce un problema di DrawingArea
Inserito da: Gianluigi - 26 Agosto 2017, 19:03:28
Purtroppo non c'è più collegamento fra nabble e la mailing list e chi scrive da li non viene più visto nella mailing, anche questo malfunzionamento di Sourceforge ha indotto alla migrazione a Git.
Forse ti converrebbe rimandare alla mailing list da qui:
https://sourceforge.net/p/gambas/mailman/gambas-user/

 :ciao: