glukalka: add recipe

This commit is contained in:
Gerasim Troeglazov
2024-02-19 23:03:07 +10:00
parent 13f5e49851
commit 1e8dbde60e
3 changed files with 702 additions and 0 deletions

View File

@@ -0,0 +1,71 @@
resource app_flags B_MULTIPLE_LAUNCH;
resource app_version {
major = @MAJOR@,
middle = @MIDDLE@,
minor = @MINOR@,
variety = B_APPV_FINAL,
internal = 0,
short_info = "Glukalka3",
long_info = "@LONG_INFO@"
};
resource app_signature "@APP_SIGNATURE@";
resource vector_icon {
$"6E63696611010100007A0301000002001602B6D0A33AA947BAA947B6D0A34BDC"
$"7A4B50510099FE6C020016023A723D3A6385BA63853A723D4928F54A8D9900CC"
$"FFA50200160238947A3AB570BAB57038947A4B115C49282800E5FFCB059B0201"
$"16023A51433B267EBC19B93979CC4878384A345D00E4FF21020016023A4039AB"
$"4F242C729E390B03497F544A3CD101BEFF0B02000603372F86346AE9B558FE36"
$"4CF74A18EF4AC7C500010000766C6C6CFE010101020116030000003BBFB1B800"
$"00000000494000492FFF00FFC886FF41020106030000003B4F76BB4F76000000"
$"491FFB46FFF700FFFFFF7FFF3300FFCC00000200060338000000000000000038"
$"00004B00004A600000FF595999B30404FFFF06060201060300000036CCA2B819"
$"7A0000004ADCCC4A333300FFD5D570FBAAAAFFEE060603FF000003FBFF000300"
$"FF000300FBFF160607FF1F42604260C113604660C19C60C50FC9945C4AC7FCC6"
$"A7CA60C3775848C9D7C334C664484248C377484250426042584260600606FF07"
$"50C48750C487C8CCC4875CC7515CC5C15CC8E050CA1BC8CCCA1BC371CA1B44C7"
$"5144C8E044C5C150C487C371C48750C487C4870608FF7F224A224A22C443224E"
$"22C4CCB80CC773425EBC4BC994C334C90B564AC5DBC66456C334564656C2AB4C"
$"C06A383942BEB0B9A3BF37224AB6B8C179224A4A0606FF0742584258425A425E"
$"425CC334C90B564AC5DBC66456C334564656C2ABC5DB4C4258C3345242585806"
$"06FF0742584258425A425E425CBC4BC994224EB80CC77322C4CC224A22C443B8"
$"0CC5984258BC4BC7734258580607FF1F224A224AB80CC5984258BC4BC773C19A"
$"C85BC3B8C673C2A9C767404EC6CAC1644246C361BFEA3839BFF8BE70B9A3BF37"
$"224AB6B8C179224A4A0605FF01C3B8C673C3B8C673C551C5035646C6EAC393C7"
$"F0C1E4C6CAC164C75DC1A44246C3B8C673404EC3B8C673C6730606FF073CBEF3"
$"3CBEF3C0D4BEF348C28948C08648C48A3CC61FC0D4C61FBB79C61F30C28930C4"
$"8A30C0863CBEF3BB79BEF33CBEF3BEF30606FF073CBEF33CBEF3C0D4BEF348C2"
$"8948C08648C48A3CC61FC0D4C61FBB79C61F30C28930C48A30C0863CBEF3BB79"
$"BEF33CBEF3BEF30606FF07BE27BF51BE27BF51C028BF51C1BDC1BDC1BDC061C1"
$"BDC318BE27C42AC028C42ABC24C42ABA91C1BDBA91C318BA91C061BE27BF51BC"
$"24BF51BE27BF51BF510606FF07BE27BEF3BE27BEF3C028BEF3C1BDC18AC1BDC0"
$"16C1BDC2FDBE27C421C028C421BC24C421BA91C18ABA91C2FDBA91C016BE27BE"
$"F3BC24BEF3BE27BEF3BEF30606FF073CC1573CC157BF0CC15740C28940C1DE40"
$"C3353CC3BBBF0CC3BBBD43C3BB38C28938C33538C1DE3CC157BD43C1573CC157"
$"C1570607FF1F3C493C49BE72493EC32BBEB6C3453EC0D53E373EBE7FBE6B373A"
$"37BDE4373ABE7F3AC32B3AC0D5BD98C3453C49BDDC493C49490606FF073C263C"
$"26C06226463046B72346BB9A3C3AC0623ABBEB3A323032BB9A32B7233C26BBEB"
$"263C26260606FF073C263C26C06226463046B72346BB9A3C3AC0623ABBEB3A32"
$"3032BB9A32B7233C26BBEB263C26260606FF075246524652474F4852484C484C"
$"464C474C454F434C435243524652455246460606FF075246524652474F485248"
$"4C484C464C474C454F434C435243524652455246460606FF074F424F42C66542"
$"524452C0E552C1CA4F46C66546C50E464C444CC1CA4CC0E54F42C50E424F4242"
$"0A0438475A4457483F4A0A043F4A5748544B434C0A04434C544B514E474E0A04"
$"474E514E4F504A50190A000100000A000101000A0101021001178400040A0201"
$"03000A030104000A040105000A050106000A0D011202404B4B0000000000003F"
$"AAAAC850F04680000A0E011302404B4B0000000000003FAAAAC850F04680000A"
$"0F011402404B4B0000000000003FAAAAC850F04680000A10011502404B4B0000"
$"000000003FAAAAC850F04680000A01010F300A1601178400040A0B0110200A16"
$"0A0C0111200A160A010107123F26220000000000003EEB3844FA8846A2A00117"
$"8400040A060108023F26220000000000003EEB3844FA8846A2A00A070109123F"
$"26220000000000003EEB3844FA8846A2A001178300040A08010A023F26220000"
$"000000003EEB3844FA8846A2A00A01010B023F26220000000000003EEB3844FA"
$"8846A2A00A09010C024000000000000000003F1C71000000450E380A01010D30"
$"201F01178400040A0A010E20201F0A01010F301E2001178400040A0B0110201E"
$"200A0C0111201E20"
};

View File

@@ -0,0 +1,92 @@
SUMMARY="ZX Spectrum Emulator"
DESCRIPTION="Glukalka is a emulator of ZX Spectrum 48K/128K and Spectrum clones.
It runs on Linux, Windows, Haiku and Mac OS machines. Anroid version is also available.
The program is free software and is copyrighted under the GNU General Public License.
Emulates:
- ZX Spectrum 48K and 128K; Pentagon 128K; Scorpion ZS 256
- Spectrum's AY-3-8910 chip on workstations with sound card
- Spectrum's beeper on workstations with sound card
- Beta 128 interface by Technology Research Ltd
- Joysticks: Kempston, Sinclair and Cursor
Loads from:
- Snapshots in .SNA or .Z80 format
- Tape images in .TAP, .TZX or .WAV format
- Disk images in .TRD, .FDI or .SCL format
Saves to:
- Snapshots in .Z80 format
- Disk images in .TRD or .FDI format
- PSG music dump in .PSG format."
HOMEPAGE="http://www.sanarin.ru/glukalka/"
COPYRIGHT="Dmitry Sanarin"
LICENSE="GNU GPL v2"
REVISION="1"
SOURCE_URI="http://www.sanarin.ru/glukalka/glukalka3_download/glukalka3.tar.bz2"
CHECKSUM_SHA256="3270529dc40d1b4a3b5ea3bf67035bd6c9759b6cb034ff701ddd740affe3ac8a"
SOURCE_DIR="glukalka3"
PATCHES="glukalka-$portVersion.patchset"
ADDITIONAL_FILES="glukalka.rdef.in"
ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"
PROVIDES="
glukalka$secondaryArchSuffix = $portVersion
"
REQUIRES="
haiku$secondaryArchSuffix
lib:libGL$secondaryArchSuffix
lib:libQt5Core$secondaryArchSuffix
lib:libQt5Gui$secondaryArchSuffix
lib:libQt5Network$secondaryArchSuffix
lib:libQt5WebKit$secondaryArchSuffix
lib:libQt5WebKitWidgets$secondaryArchSuffix
lib:libQt5Widgets$secondaryArchSuffix
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
devel:libQt5Core$secondaryArchSuffix
devel:libQt5Gui$secondaryArchSuffix
devel:libQt5Network$secondaryArchSuffix
devel:libQt5WebKit$secondaryArchSuffix
devel:libQt5WebKitWidgets$secondaryArchSuffix
devel:libQt5Widgets$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:gcc$secondaryArchSuffix
cmd:ld$secondaryArchSuffix
cmd:lrelease$secondaryArchSuffix >= 5
cmd:qmake$secondaryArchSuffix >= 5
cmd:make
"
BUILD()
{
qmake QT_CONFIG+=webkit
make $jobArgs
}
INSTALL()
{
mkdir -p $appsDir
cp glukalka3 $appsDir/Glukalka
local APP_SIGNATURE="application/x-vnd.glukalka3"
local MAJOR="`echo "$portVersion" | cut -d. -f1`"
local MIDDLE="`echo "$portVersion" | cut -d. -f2`"
local MINOR="`echo "$portVersion" | cut -d. -f3`"
local LONG_INFO="$SUMMARY"
sed \
-e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \
-e "s|@MAJOR@|$MAJOR|" \
-e "s|@MIDDLE@|$MIDDLE|" \
-e "s|@MINOR@|$MINOR|" \
-e "s|@LONG_INFO@|$LONG_INFO|" \
$portDir/additional-files/glukalka.rdef.in > glukalka.rdef
addResourcesToBinaries glukalka.rdef $appsDir/Glukalka
addAppDeskbarSymlink $appsDir/Glukalka
}

View File

@@ -0,0 +1,539 @@
From 579598cf3f777d0808e1ccd6ec2afc1008744a93 Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Mon, 19 Feb 2024 20:56:04 +1000
Subject: Add Haiku support
diff --git a/glukalka3.pro b/glukalka3.pro
index 9aa2e05..cb5102c 100644
--- a/glukalka3.pro
+++ b/glukalka3.pro
@@ -17,6 +17,7 @@ QMAKE_CXXFLAGS += -Wno-unused-variable
#contains(QT_CONFIG, opengl):{
# message(Building with OpenGL support.)
# DEFINES += OPENGL
+# QT += opengl
#}
#}
@@ -28,6 +29,15 @@ linux-*: {
LIBS += -lasound
}
+
+haiku-*: {
+ message(Building for Haiku with MediaKit support.)
+
+ DEFINES += HAIKU
+ SOURCES += haiku.cpp
+ LIBS += -lmedia
+ }
+
solaris-*: {
message(Building for Solaris with Sun audio support.)
@@ -53,7 +63,7 @@ contains(QT_CONFIG, multimedia):{
contains(QT_CONFIG, webkit):{
message(Building with webkit support.)
- QT += webkit
+ QT += webkit webkitwidgets
DEFINES += WEBKIT
QT += network
HEADERS += download.h
diff --git a/haiku.cpp b/haiku.cpp
new file mode 100644
index 0000000..99e1500
--- /dev/null
+++ b/haiku.cpp
@@ -0,0 +1,236 @@
+# include <stdlib.h>
+# include <string.h>
+# include <sys/types.h>
+
+# include <stdio.h>
+# include <unistd.h>
+# include <string.h>
+
+# include <OS.h>
+# include <SoundPlayer.h>
+
+# include "emulate.h"
+
+class RingBuffer {
+public:
+ RingBuffer(int size)
+ {
+ initialized = false;
+ Buffer = new unsigned char[size];
+ if (Buffer) {
+ memset( Buffer, 0, size );
+ BufferSize = size;
+ } else {
+ BufferSize = 0;
+ }
+ reader = 0;
+ writer = 0;
+ writeBytesAvailable = size;
+ if ((locker = create_sem(1,"locker")) >= B_OK) {
+ initialized = true;
+ } else {
+ delete[] Buffer;
+ }
+ }
+ ~RingBuffer()
+ {
+ if (initialized) {
+ delete[] Buffer;
+ delete_sem(locker);
+ }
+ }
+ int Read(unsigned char* data, int size)
+ {
+ acquire_sem(locker);
+ if( data == 0 || size <= 0 || writeBytesAvailable == BufferSize ) {
+ release_sem(locker);
+ return 0;
+ }
+ int readBytesAvailable = BufferSize - writeBytesAvailable;
+ if( size > readBytesAvailable ) {
+ size = readBytesAvailable;
+ }
+ if(size > BufferSize - reader) {
+ int len = BufferSize - reader;
+ memcpy(data, Buffer + reader, len);
+ memcpy(data + len, Buffer, size-len);
+ } else {
+ memcpy(data, Buffer + reader, size);
+ }
+ reader = (reader + size) % BufferSize;
+ writeBytesAvailable += size;
+ release_sem(locker);
+ return size;
+ }
+ int Write(unsigned char *data, int size)
+ {
+ acquire_sem(locker);
+ if( data == 0 || size <= 0 || writeBytesAvailable == 0 ) {
+ release_sem(locker);
+ return 0;
+ }
+ if( size > writeBytesAvailable ) {
+ size = writeBytesAvailable;
+ }
+ if(size > BufferSize - writer) {
+ int len = BufferSize - writer;
+ memcpy(Buffer + writer, data, len);
+ memcpy(Buffer, data+len, size-len);
+ } else {
+ memcpy(Buffer + writer, data, size);
+ }
+ writer = (writer + size) % BufferSize;
+ writeBytesAvailable -= size;
+ release_sem(locker);
+ return size;
+ };
+ bool Empty( void )
+ {
+ memset( Buffer, 0, BufferSize );
+ reader = 0;
+ writer = 0;
+ writeBytesAvailable = BufferSize;
+ return true;
+ };
+ int GetSize( ) { return BufferSize; }
+ int GetWriteAvailable( ) { return writeBytesAvailable; }
+ int GetReadAvailable( ) { return BufferSize - writeBytesAvailable; }
+ status_t InitCheck( ) { return initialized ? B_OK : B_ERROR; }
+private:
+ unsigned char *Buffer;
+ int BufferSize;
+ int reader;
+ int writer;
+ int writeBytesAvailable;
+ bool initialized;
+ sem_id locker;
+};
+
+static void soundProc(void *cookie, void *buffer, size_t len, const media_raw_audio_format &format)
+{
+ RingBuffer *ring = (RingBuffer*)cookie;
+ unsigned char* ptr = (unsigned char*)buffer;
+
+ int readed = ring->Read(ptr,len);
+
+ if(readed <len)
+ memset(ptr+readed, 0, len - readed);
+}
+
+class SndPlayer
+{
+public:
+ SndPlayer()
+ {
+ channels = 2;
+ sample_rate = 44100;
+ player = nullptr;
+ _isOK = true;
+ }
+ ~SndPlayer() { stop(); }
+
+ bool isOK() { return _isOK; }
+ bool isOpen() { return player; }
+
+ bool start()
+ {
+ size_t gSoundBufferSize = 882 * sizeof(int) * channels;
+ media_raw_audio_format form = {
+ sample_rate,
+ channels,
+ media_raw_audio_format::B_AUDIO_SHORT,
+ B_MEDIA_LITTLE_ENDIAN,
+ gSoundBufferSize
+ };
+ ring = new RingBuffer(gSoundBufferSize * 3);
+ if(ring->InitCheck() != B_OK) {
+ delete ring; ring = 0;
+ return false;
+ }
+ player = new BSoundPlayer(&form, "Glukalka3", soundProc, nullptr, (void*)ring);
+ if(player->InitCheck() != B_OK) {
+ delete player;
+ player = nullptr;
+ return false;
+ }
+ player->Start();
+ player->SetHasData(true);
+ _isOK = true;
+ return player;
+ }
+ void stop()
+ {
+ if(player) {
+ player->Stop();
+ delete player;
+ delete ring;
+ player = nullptr;
+ ring = nullptr;
+ }
+ }
+ bool write( char * buffer, int size )
+ {
+ int s = size;
+ while ( s > 0 && s % 4 )
+ s--;
+ if ( s <= 0 )
+ return false;
+
+ int len=s;
+ unsigned char *src_ptr = (unsigned char *)buffer;
+ for (;;) {
+ int len2 = ring->Write(src_ptr,len);
+ if(len2 == len)
+ break;
+ len -= len2;
+ src_ptr += len2;
+ snooze(100);
+ }
+ return true;
+ }
+private:
+ uchar channels;
+ float sample_rate;
+ bool _isOK;
+ BSoundPlayer *player;
+ RingBuffer *ring;
+};
+
+static SndPlayer player;
+
+int init_card(char * arg)
+{
+ player.start();
+ return 0;
+}
+
+void play (char * buffer, int len)
+{
+ player.write(buffer, len);
+}
+
+# define MAXCARDS 20
+char *** cardslist;
+
+char *** cards_list(void)
+{
+ if (cardslist)
+ free(cardslist);
+
+ cardslist = (char ***) malloc(MAXCARDS * sizeof (char **));
+
+ for (int i=0; i<MAXCARDS; i++)
+ cardslist[i]= (char**) malloc (2 * sizeof (char *));
+
+ for (int i=0; i<MAXCARDS; i++) {
+ for (int j=0; j<2; j++) {
+ cardslist[i][j]= (char*) malloc (101 * sizeof (char));
+ memset(cardslist[i][j], 0, 100);
+ }
+ }
+
+ sprintf (cardslist[0][0], "default");
+ sprintf (cardslist[0][1], "default");
+
+ return ((char ***)cardslist);
+}
diff --git a/qt.cpp b/qt.cpp
index 8ca4b02..4b58369 100644
--- a/qt.cpp
+++ b/qt.cpp
@@ -21,7 +21,7 @@
#endif
# if defined WEBKIT
-# include <QtWebKit/QWebView>
+# include <QtWebKitWidgets/QWebView>
QWebView *view;
# include "download.h"
#endif
@@ -209,6 +209,7 @@ const char * ssolaris = "Solaris native";
const char * smac = "OpenAL";
const char * swin = "Windows native";
const char * salsa = "Alsa";
+const char * shaiku = "MediaKit";
int slow=0;
@@ -230,6 +231,10 @@ const char * ss = ssolaris;
const char * ss = soss;
#else
+#if defined HAIKU
+const char * ss = shaiku;
+#else
+
#if defined MACOSX
const char * ss = smac;
#else
@@ -245,6 +250,7 @@ const char * ss = snosound;
#endif
#endif
#endif
+#endif
char jjjj = -1;
@@ -468,9 +474,9 @@ void MyClass::full_screen()
void pshow()
{
if (!e_pause)
- ppp->setIcon(QIcon(QPixmap(pause)));
+ ppp->setIcon(QIcon::fromTheme("media-playback-pause"));
else
- ppp->setIcon(QIcon(QPixmap(Play)));
+ ppp->setIcon(QIcon::fromTheme("media-playback-start"));
}
void MyClass::save()
@@ -960,6 +966,10 @@ void MyClass::FillAudioList(void)
#if defined LINUX
cl = cards_list();
#endif
+
+#if defined HAIKU
+ cl = cards_list();
+#endif
#if defined SOLARIS
cl = cards_list();
@@ -1243,6 +1253,11 @@ void MyClass::settings()
if (ss==smac)line2->setCurrentIndex (line2->count () -1);
#endif
+#if defined HAIKU
+ line2->addItem(shaiku);
+ if (ss==shaiku)line2->setCurrentIndex (line2->count () -1);
+#endif
+
#if defined WIN32
line2->addItem(swin);
if (ss==swin)line2->setCurrentIndex (line2->count () -1);
@@ -2441,7 +2456,12 @@ void MyClass::update()
#endif
}
-
+ if (ss==shaiku)
+ {
+# if defined HAIKU
+ play(sound, 882*4);
+#endif
+ }
if (ss==swin)
{
@@ -2534,7 +2554,7 @@ void MyClass::Main_Window(void)
QSize * QS = new QSize(33, 34);
QSize * QS1 = new QSize(65, 34);
- b1 = new QPushButton(QIcon(QPixmap(open)), "", main_window);
+ b1 = new QPushButton(QIcon::fromTheme("document-open"), "", main_window);
b1->setShortcut(QKeySequence("F3"));
b1->setToolTip(tr("Open file (F3)"));
b1->setFixedSize(*QS);
@@ -2543,7 +2563,7 @@ void MyClass::Main_Window(void)
B1=b1;
- b1 = new QPushButton(QIcon(QPixmap(web)), "", main_window);
+ b1 = new QPushButton(QIcon::fromTheme("globe"), "", main_window);
b1->setToolTip(tr("Get file from the web"));
b1->setFixedSize(*QS);
eh->connect(b1, SIGNAL(clicked()), eh, SLOT(web()));
@@ -2551,7 +2571,7 @@ void MyClass::Main_Window(void)
B22=b1;
- b1 = new QPushButton(QIcon(QPixmap(save)), "", main_window);
+ b1 = new QPushButton(QIcon::fromTheme("document-save"), "", main_window);
b1->setShortcut(QKeySequence("F2"));
b1->setToolTip(tr("Save file (F2)"));
b1->setFixedSize(*QS);
@@ -2559,7 +2579,7 @@ void MyClass::Main_Window(void)
hlayout->addWidget(b1);
B3=b1;
- ppp = new QPushButton(QIcon(QPixmap(pause)), "", main_window);
+ ppp = new QPushButton(QIcon::fromTheme("media-playback-pause"), "", main_window);
ppp->setShortcut(QKeySequence("F11"));
ppp->setToolTip(tr("Pause (F11)"));
ppp->setFixedSize(*QS);
@@ -2568,14 +2588,14 @@ void MyClass::Main_Window(void)
B4=ppp;
- b1 = new QPushButton(QIcon(QPixmap(run)), "", main_window);
+ b1 = new QPushButton(QIcon::fromTheme("go-next-skip"), "", main_window);
eh->connect(b1, SIGNAL(clicked()), eh, SLOT(rrrun()));
b1->setToolTip(tr("Max speed"));
b1->setFixedSize(*QS);
hlayout->addWidget(b1);
B5=b1;
- b1 = new QPushButton(QIcon(QPixmap(settings)), "", main_window);
+ b1 = new QPushButton(QIcon::fromTheme("preferences-system"), "", main_window);
b1->setFixedSize(*QS);
b1->setToolTip(tr("Settings"));
eh->connect(b1, SIGNAL(clicked()), eh, SLOT(settings()));
@@ -2584,7 +2604,7 @@ void MyClass::Main_Window(void)
- b1 = new QPushButton(QIcon(QPixmap(reset)), "", main_window);
+ b1 = new QPushButton(QIcon::fromTheme("view-refresh"), "", main_window);
b1->setShortcut(QKeySequence("F12"));
b1->setToolTip(tr("Reset (F12)"));
b1->setFixedSize(*QS);
@@ -2593,7 +2613,7 @@ void MyClass::Main_Window(void)
B7=b1;
- b1 = new QPushButton(QIcon(QPixmap(dump_s)), "", main_window);
+ b1 = new QPushButton(QIcon::fromTheme("music-note-16th"), "", main_window);
eh->connect(b1, SIGNAL(clicked()), eh, SLOT(record()));
b1->setToolTip(tr("Dump AY sound"));
b1->setFixedSize(*QS);
@@ -2601,7 +2621,7 @@ void MyClass::Main_Window(void)
B8=b1;
- b1 = new QPushButton(QIcon(QPixmap(disc)), "", main_window);
+ b1 = new QPushButton(QIcon::fromTheme("tools-report-bug"), "", main_window);
eh->connect(b1, SIGNAL(clicked()), eh, SLOT(nmi()));
b1->setToolTip(tr("Generate NMI"));
b1->setFixedSize(*QS);
@@ -2629,7 +2649,7 @@ void MyClass::Main_Window(void)
b1->setMenu(fileMenu);
- b1 = new QPushButton(QIcon(QPixmap(fullscreen)), "", main_window);
+ b1 = new QPushButton(QIcon::fromTheme("view-fullscreen"), "", main_window);
b1->setShortcut(QKeySequence("F10"));
b1->setToolTip(tr("Full screen (F10)"));
b1->setFixedSize(*QS);
@@ -2638,7 +2658,7 @@ void MyClass::Main_Window(void)
B11=b1;
- b1 = new QPushButton(QIcon(QPixmap(question)), "", main_window);
+ b1 = new QPushButton(QIcon::fromTheme("help-whatsthis"), "", main_window);
b1->setToolTip(tr("About"));
eh->connect(b1, SIGNAL(clicked()), eh, SLOT(about()));
b1->setFixedSize(*QS);
@@ -2731,8 +2751,8 @@ void SetLL(int v1, int v2, int v3, int v4, int v5, int v6, int v7, int v8, int v
#if defined MULTIMEDIA
AudioTest::AudioTest()
{
- m_format.setFrequency(44100);
- m_format.setChannels(2);
+ m_format.setSampleRate(44100);
+ m_format.setChannelCount(2);
m_format.setSampleSize(16);
m_format.setCodec("audio/pcm");
m_format.setByteOrder(QAudioFormat::LittleEndian);
@@ -2888,6 +2908,13 @@ int SoundCardInit(void)
#endif
}
+ if (ss == shaiku)
+ {
+#if defined HAIKU
+ int rv = init_card(Get_audio_name());
+ return(rv);
+#endif
+ }
if (ss == swin)
{
@@ -3324,7 +3351,15 @@ int main( int argc, char **argv )
videomemory1[5]=4;
+#if defined HAIKU
+ QDir settings = QDir::homePath() + "/config/settings";
+ settings.mkdir("glukalka3");
+ QString homedir = settings.canonicalPath();
+ homedir += "/glukalka3";
+ SetHomeDir((char *)homedir.toUtf8().constData());
+#else
SetHomeDir((char *)QDir::toNativeSeparators(QDir::homePath()).toUtf8().constData());
+#endif
int rv = init(videomemory1);
reset_h();
diff --git a/android_io.h b/android_io.h
index 8844ca4..f2377cb 100644
--- a/android_io.h
+++ b/android_io.h
@@ -1,7 +1,7 @@
-#if ((!defined _WIN32) && (!defined __linux__) && (!defined __APPLE__) && (!defined __FreeBSD__) && (!defined __NetBSD__ ) && (!defined __sun__))
-# define ANDROID 1
-# warning ANDROID
-#endif
+#if ((!defined _WIN32) && (!defined __linux__) && (!defined __APPLE__) && (!defined __FreeBSD__) && (!defined __NetBSD__ ) && (!defined __sun__) && (!defined __HAIKU__))
+# define ANDROID 1
+# warning ANDROID
+#endif
# define O_RDONLY 0
# define O_WRONLY 1
@@ -71,4 +71,4 @@ int rand (void);
void sscanf (char *, char *, int *);
-#endif
\ No newline at end of file
+#endif
--
2.42.1