Aktuelle Zeit: 19.07.2018 08:05

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 31 Beiträge ]  Gehe zu Seite 1, 2, 3, 4  Nächste
Autor Nachricht
 Betreff des Beitrags: Wie Struktur aus C-Lib in PB importieren
BeitragVerfasst: 11.02.2018 19:31 
Offline
Benutzeravatar

Registriert: 19.10.2006 12:51
Hallo,

hier ist eine C-Struktur:

https://wiki.libsdl.org/SDL_AudioSpec

Wie importiere ich sie in PB, so dass ich die SDL-Api vrewenden kann?

_________________
return;


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Wie Struktur aus C-Lib in PB importieren
BeitragVerfasst: 11.02.2018 20:52 
Offline
Benutzeravatar

Registriert: 25.09.2016 01:42
Bin mir nicht ganz sicher...

Code:
Structure SDL_AudioSpec
  freq.i
  format.i;SDL_AudioFormat !?
  channels.a
  silence.a
  samples.u
  size.l
  *callback
  *userdata
EndStructure


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Wie Struktur aus C-Lib in PB importieren
BeitragVerfasst: 11.02.2018 21:39 
Offline
Benutzeravatar

Registriert: 19.10.2006 12:51
Muss man das echt von Hand machen? :shock:

Das war mein Versuch:

Code:
Structure SDL_AudioSpec
  freq.l  ;habe hier auch i und u probiert.
  format.u
  channels.a
  silence.a
  samples.u
  size.l
  *callback
  *userdata
EndStructure


Funktioniert hat es natürlich nicht.

Wollte einen 1:1-Ersatz für die unter Linux fehlerhaft laufende Sound-Bibliothek bauen, der SDL nutzt.

Habe dafür jetzt C statt PB genommen und es läuft vom Sound her alles, wie es soll. :)

Trotzdem vielen Dank für deine Mühe. :allright:

_________________
return;


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Wie Struktur aus C-Lib in PB importieren
BeitragVerfasst: 11.02.2018 22:21 
Offline
Benutzeravatar

Registriert: 25.09.2016 01:42
Wäre jetzt interessant ob man mit C nachschauen kann wie groß die Struktur ist.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Wie Struktur aus C-Lib in PB importieren
BeitragVerfasst: 11.02.2018 22:45 
Offline
Benutzeravatar

Registriert: 19.10.2006 12:51
Du meinst sizeof(SDL_AudioSpec)?

32 Bytes :mrgreen:

Inzwischen habe ich herausgefunden, dass die Struktur in PB bereits deklariert ist. Jedoch hat diese laut SizeOf() eine leicht andere Größe (ich glaube, das waren 36 oder so).

Dadurch schlägt der Aufruf von SDL_OpenAudioDevice() fehl, während es unter C mit genau denselben Bedingungen funktioniert. Ich vermute mal sehr stark, dass eine leicht abweichende Struktur daran schuld ist. Ich weiß allerdings nicht, ob PB's sizeof anders funktioniert als das von C.

Ist zwar doof mit dem angestückelten C, aber was solls...

Aber den völlig übersteuerten Krach, den mir die Purebasic-Soundlib um die Ohren haut, wenn ich damit eine Mono-Wavdatei abspiele, den möchte ich nicht nochmal mit Kopfhörern erleben.... :evil:

_________________
return;


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Wie Struktur aus C-Lib in PB importieren
BeitragVerfasst: 11.02.2018 23:10 
Offline
Benutzeravatar

Registriert: 25.09.2016 01:42
Danke fürs nachsehen :)

Nochmal 2 Möglichkeiten mit 32 Bytes falls es Jemand testen will...
Kann es unter Windows leider nicht testen :cry:
Code:
Structure SDL_AudioSpec
  freq.l
  format.l
  channels.a
  silence.a
  samples.u
  size.l
  *callback
  *userdata
EndStructure

Structure SDL_AudioSpec
  freq.i
  format.i
  channels.a
  silence.a
  samples.u
  size.l
  *callback
EndStructure


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Wie Struktur aus C-Lib in PB importieren
BeitragVerfasst: 11.02.2018 23:45 
Offline
Benutzeravatar

Registriert: 04.08.2009 17:24
Auch wenn es in diesem Fall keinen Unterschied macht, weil .a + .a + .u die gleiche Länge wie ein .l ergeben und 4x .l sich immer mit einigen .i ausgeht, würde ich für C-Strukturen immer mit 'Align #PB_Structure_AlignC' arbeiten.

Dann kannst du für Audio-Format auch ein .w verwenden.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Wie Struktur aus C-Lib in PB importieren
BeitragVerfasst: 12.02.2018 00:56 
Offline
Ein Admin
Benutzeravatar

Registriert: 29.08.2004 20:20
Wohnort: Saarbrücken
Es gibt für Strukturen auch das Schlüsselwort AlignC, wenn ich das auswendig noch richtig im Kopf habe. Das aligned die Strukturfelder in C-Manier.

_________________
Freakscorner.de - Der Bastelkeller | Neustes Video: Creality 3D CR-10 Review und erste Druckergebnisse
Ubuntu Gnome 16.04.3 LTS x64, PureBasic 5.60 x64 (außerdem 4.41, 4.50, 4.61, 5.00, 5.10, 5.11, 5.21, 5.22, 5.30, 5.31, 5.40, 5.50)
"Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen – Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Wie Struktur aus C-Lib in PB importieren
BeitragVerfasst: 12.02.2018 01:14 
Offline
Benutzeravatar

Registriert: 19.10.2006 12:51
@Mijikai: Nüscht.... Beim zweiten hast du den letzten Zeiger unterschlagen. :wink:

@Josh: Und wie nutze ich diese Konstante? In der PB-Hilfe geht die Suchfunktion nämlich ebenso wenig und ich habe sie nicht wirklich gefunden. :mrgreen:

PS: Dieses SDL_AudioFormat ist übrigens hier dokumentiert: https://wiki.libsdl.org/SDL_AudioFormat (Sie ist tatsächlich 16-bit groß, das habe ich vorsichtshalber gerade mit C überprüft). Nur stimmt dann die Größe wieder nicht... :freak: Ich denke mal, #PB_Structure_AlignC muss hier verwendet werden. Ich weiß leider nicht, wie, da meine Hilfe kaputt ist.

_________________
return;


Zuletzt geändert von DarkSoul am 12.02.2018 01:28, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Wie Struktur aus C-Lib in PB importieren
BeitragVerfasst: 12.02.2018 01:27 
Offline

Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge
Hallo Leute,

es wäre toll wenn hier jemand die Audio-Ausgabe über SDL zum laufen bringt.

Hier ist der SDL-Sound-Test:

PureSDLTest.zip

Es wird ein 64bit Linux benötigt, oder man benutzt eine andere SDL_Lib.
Bei Anpassung der "sdl.pbi" kann man es auch unter Windows über die SDL.dll nutzen.

Nur wie bekomme ich mein Beispiel zum laufen ?


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 31 Beiträge ]  Gehe zu Seite 1, 2, 3, 4  Nächste

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye