Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Clase Audio Y Clase Configuracion De Audio, Esta Bien Planteado O No?
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Clase Audio Y Clase Configuracion De Audio, Esta Bien Planteado O No? 
 
Public cfg As CfgAudio
Public Sonido As Audio



Public Sub Form_Open()

 cfg = New CfgAudio("cfgSonido", User.Home)
 Sonido = New Audio(cfg)
 
End



Public Sub Button2_Click()

  FMain.Sonido.Atencion.Play

End

Public Sub Button1_Click()

  Dim RutaX, Extencion As String
 
  
  Dialog.Filter = ["*.ogg", ("Archivos de sonido ogg"), "*.wav", ("Archivos de sonido wav")]
  Dialog.Path = User.Home
  If Dialog.OpenFile() Then Return
  Extencion = File.Ext(Dialog.Path)
  TextBox1.Text = Dialog.Path  
    
  Select Case Extencion
    Case "ogg", "wav"
    Case Else
      FMain.SonidoError.Play
      Message.Error("El archivo " & File.Name(Dialog.Path) & gb.NewLine & "no es un archivo admitido por el programa" & gb.NewLine & "por favor elija archivos de sonido con extencion  .ogg / .wav")
      Return
  End Select
  
  
  FMain.cfg.Atencion = Dialog.Path
 

End




Clase cfgAudio que administra las rutas de los audios a ejecutar

' gambas class file

Property Atencion As String
Property Hecho As String
Property ConfigAudio As Settings

Private $Atencion As String
Private $hecho As String
Private $ConfigAudio As Settings


Public Sub _new(nombre As String, ruta As String)
  Dim archivo As String
  
  archivo = ruta &/ nombre
  Print "ruta archivo Settings=" & archivo
 
  $ConfigAudio = New Settings(archivo, nombre)
 
  If Not Exist(archivo) Then
      $ConfigAudio["Partido/Atencion"] = "Sonidos/Error2.ogg"
      $ConfigAudio["Partido/Hecho"] = "Sonidos/go.ogg"
      $ConfigAudio.Save    
  Endif
  
  $Atencion = $ConfigAudio["Partido/Atencion"]
  $hecho = $ConfigAudio["Partido/Hecho"]

End

Private Function Atencion_Read() As String
  Return $Atencion
End

Private Sub Atencion_Write(Value As String)
  $Atencion = Value
  $ConfigAudio["Partido/Atencion"] = $Atencion
  $ConfigAudio.Save
End

Private Function Hecho_Read() As String
  Return $hecho
End

Private Sub Hecho_Write(Value As String)
  $hecho = Value
End

Private Function ConfigAudio_Read() As Settings
  Return $ConfigAudio
End

Private Sub ConfigAudio_Write(Value As Settings)
  $ConfigAudio = Value
End



Clase Audio que se encarga de ejecutar sonidos

gambas class file

Property Atencion As Sound
Property Hecho As Sound
Property cfg As CfgAudio

Private $Atencion As Sound
Private $Hecho As Sound
Private $cfg As CfgAudio


Public Sub _new(cfg As CfgAudio)
  $Atencion = Sound.Load(cfg.Atencion)
  $Hecho = Sound.Load(cfg.Hecho)
  $cfg = cfg
End

Private Function Atencion_Read() As Sound
  $Atencion = Sound.Load($cfg.Atencion)
  Return $Atencion
End

Private Sub Atencion_Write(Value As Sound)
  $Atencion = Value
End

Private Function Hecho_Read() As Sound
  $Hecho = Sound.Load($cfg.Hecho)
  Return $Hecho
End

Private Sub Hecho_Write(Value As Sound)
 $Hecho = Value
End

Private Function cfg_Read() As CfgAudio
  Return $cfg
End

Private Sub cfg_Write(Value As CfgAudio)
  $cfg = Value
End



la idea es tener dos objetos uno que ejecuta sonidos y el otro que le administra las rutas de los archivos de audio.

estoy haciendo bien?
es programación orientada a objetos

voy bien o esta mal mi planteo?
 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Clase Audio Y Clase Configuracion De Audio, Esta Bien Planteado O No? 
 
v3ctor:
Public Sub _new(cfg As CfgAudio)
  $Atencion = Sound.Load(cfg.Atencion)
  $Hecho = Sound.Load(cfg.Hecho)
  $cfg = cfg
End

Private Function Atencion_Read() As Sound
  $Atencion = Sound.Load($cfg.Atencion)
  Return $Atencion
End

Esto no me encaja... en la funcion Atencion_read() as sound, sobraria lo de
$Atencion = Sound.Load($cfg.Atencion)

Ya que cada vez que leas la propiedad Atencion va a cargar la canción.
Yo suyo es que haya un método para "cambiar " la canción/musica, y que este altere el valor de $Atencion.


Mirate este documento: http://elvex.ugr.es/decsai/java/pdf/3C-Relaciones.pdf

Esta interensante y aunque esta aplicado para  java, es aplicable a gambas3
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
última edición por jsbsan el Miercoles, 07 Octobre 2015, 07:44; editado 1 vez 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Clase Audio Y Clase Configuracion De Audio, Esta Bien Planteado O No? 
 
jsbsan,


vos decís que en vez de hacer lo que hago con dos clases resumirlo en una?
 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Clase Audio Y Clase Configuracion De Audio, Esta Bien Planteado O No? 
 
v3ctor

Citar:
vos decís que en vez de hacer lo que hago con dos clases resumirlo en una?


No, solo te he hecho el comentario sobre como defines Atencion_Read()

Tener varias clases, puede ser interesante, ¿conoces el lema ese de "divide y vencerás"?
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 0 invitados
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron