Login
Username:

Password:

Remember me



Lost Password?

Register now!

Sections

Who's Online
71 user(s) are online (44 user(s) are browsing Forums)

Members: 0
Guests: 71

more...

Support us!

Headlines

Forum Index


Board index » All Posts (broadblues)




Re: USB Audio driver for AmigaOS4
Home away from home
Home away from home


@afxgroup

The ZoomQ2 can switch mode on startup. It either a webcam or a USB mic or SDCard reader when plugged in. I switched it to USB mic then rebooted. As long as the board SAM power is up it stays in the selected mode.

I will see if I can get serial logs later.

I'm probably trying fairly unconventional devices, but my only "plain" USB device is broken and doesn#t even power up.

Go to top


Re: USB Audio driver for AmigaOS4
Home away from home
Home away from home


Also tried with ,y AKAI MPX16 which has a USB audio interface as USB midi.

USB inspector shows that usbaudio.usbfd has attached to the Class 1 interface and camd to the Class 3


Nothing is shown in AHI prefs. Not even non worrking options....

Go to top


Re: USB Audio driver for AmigaOS4
Home away from home
Home away from home


Gave it a try with my Zoom Q2 camera in USB microphone mode.

This offers three endpoints one Class1 and 2 Class 2 . The Class 1 shows as picked by the usbaudio.fdclass in USBInspector.

In AHI prefs however it doesn't seem to work.

Occasionally it offers a device with the wrong vendor ID though I cant read all of it it start with 04 whereas the actual id is 1686, occasionally just "Front" any attempt to play the test sound with whichever output eventually locks up the SAM.

Go to top


SketchBlock XMas Card Video 2025
Home away from home
Home away from home


This years video all done on the X1000 with SketchBlock, HD-Rec, Audio Evolution and Blender.

Merry Christmas.

https://youtu.be/NeYakS5eN4I

Go to top


Re: Deleting complete pixel lines in ImageFx4?
Home away from home
Home away from home


@Gregor,

There is no simple way to do it as it's not a simple thing to do, or a common image manipulation operation.

YOu might script it with arexx,

You would need to duplicate the buffer, crop the top half, crop again below the pixels you want to lose and then adjust the sizes and offsets before flattening the result.

Go to top


Re: AmiBrowser: new modern web browser
Home away from home
Home away from home


@kas1e

Quote:

@Andy
If this is not secret, what was the reason to go Chromium way, and not Webkit one for example ?


Didn't notice this in your original post, or rather when I originally read it.

The reason we went with this, ie CEF, is that is is specifically designed for this purpose, ie to embed chrom(e|ium) in third party applications, it has an extensive API, allowing you to intercept and trigger browser actions and so implement your own browser around it. It's also pretty bang up to date, being based on chromium 138 !

Go to top


Re: AmiBrowser: new modern web browser
Home away from home
Home away from home


@joerg

Not really, this no WRP type setup. Not that there would be anything wrong with that, as a project.


Edited by broadblues on 2025/8/8 15:46:23
Go to top


Re: AmiBrowser: new modern web browser
Home away from home
Home away from home


@interrogative

Quote:

If this is merely Linux Chromium, isn't it misleading to say it's a 68k application? Or can they claim it solely based on the MUI wrapper?


The news release clearly mentions arm libraries, it's obviously a hybrid program, with no attempt to claim other wise, the 68k side would run on any amiga 68k installation up to the point where it couldn't find the need arm library and then quietly quit. Maybe a later version will give proper error report

It's always been our stated intention to make use of the arm processor via "arm libraries" up till now this has included specialist gfx acceleration (main alpha blending related, but also some format conversion code) and picture file format decoding in the datatypes.

This takes things up a notch!

For information:

This project contains three / four layers layers.

1. The back end is CEF and is an unmodified production build so all source code for that can be found in the relevant repositories

2a: A mainly C++ Arm64 layer that provides the needed classes to control the browser and quite lot of other stuff. This is written mostly from scratch based largely on the simples example client code, informed by the more complex (insanely complex!) full example cefclient, but very little like for like code because obvious the GUI is not Gtk , so everything needs reinterpreting for...

2b: An amiga like API using messages and BOOPSI ish methods that enables the Arm side and 68k side to communicate, which straddles the arm and 68k sides. Lots of fun with endianess, pointer sizes, pixel formats etc to overcome. Some inline arm64 assembler helps with that.

3: An MUI application and private custom class that interacts with the above and provides the 68k side of the interaction API, sends input events etc to the backend whilst fetching and displaying the rendered pages.

The end result will be tightly integrated with the 68k environment, allowing file downloads, loading of local files, rtc. The 68k side will handle bookmarking, long term browser history (rather than per session back and forth) and as much more as we have time for.

Go to top


Re: NULL, 0xFFFFFFFF and Exec: Real vs QEMU
Home away from home
Home away from home


@kas1e

Quote:

You can specify a value of -1 (i.e. (STRPTR) ~0) for either of
the title pointers. This designates that you want Intuition to leave
the current setting of that particular title alone, and modify
only the other one. Of course, you could set both to -1.



I see jabirulo got there first....

Quote:

Yeah, read it all yesterday already. Is it only SetWindowTitles allowing -1 or there are more ? I see NULL is acceptable offten, but -1 ?


It's not uncommon for a few special values for strings, we mainly get away with this due to the signed 32 bit memory space, so 0xFFFFFFFF will "never" be a valid pointer to a string.

But check with the autodocs of each function / tag, some places bad things will happen

Go to top


Re: boopsi: how to make button with 2 lines with centered text in ?
Home away from home
Home away from home


Put the justification before the text.

Use a similar label with alternate colours for the select image.

Go to top


Re: Correct way to work with RGB/ARGB bitmaps?
Home away from home
Home away from home


You called the first render() before you created the bitmapobjet if that code is right.

But other wise next render you delete the bitmap whilst attached to the bitmapobject, that wont go down well.

Go to top


Re: texteditor.gadget and copy/paste
Home away from home
Home away from home


@kas1e

Quote:

Any ideas on properly loading large binary files (more than 100mb) into texteditor.gadget? Issue is that null bytes (0x00) get treated as string terminators, so content gets truncated. Notepad and MultiEdit seem to handle this: they not only skip 0x00 but also appear to skip something else too, and that no isprint() from ctype.h.


1. You probably shouldn't as it's a text editor

but

2. JUst use

SetAttrs((Object *)EditorGadget,
GA_TEXTEDITOR_Length,Size,
GA_TEXTEDITOR_Contents,Data,
TAG_DONE);

Go to top


Re: texteditor.gadget and copy/paste
Home away from home
Home away from home


With window class windows you need to add a idcmphook, WINDOW_IDCMPHook or similar (away from any amiga to check) search window class auto doc.

You might need to set the gadgets ICA_TARGET to the window, check includes for correct values, should be obvious

Go to top


Re: texteditor.gadget and copy/paste
Home away from home
Home away from home


@kas1e

No the issue is that your code always sets the scroller to the gader position, but never does the reverse. So when the gadget changes due to text input or cursor keys, the scroller updates, but the scroller is dragged, the code immediate outs back to the current gadget state.

You need to listen to both gadget changes and apply to scroller and scroller changes and apply to gadget. Both via OM_NOTIFY

WMHI_INTUITICK will triggering at least 10 times a second, you only want updates when things change.

Go to top


Re: texteditor.gadget and copy/paste
Home away from home
Home away from home


@kas1e

No listen to OM_Notify and check for the GA_Texteditor_Prop attributes. Im away so cant give any example code.

Go to top


Re: texteditor.gadget and copy/paste
Home away from home
Home away from home


@kas1e,

Visibility in what sense?

I'm guessing you dont mean GA_Hidden as hidden a text editor would make no sense at all.

Visible in scroller? The containing window is visible?

Go to top


Re: texteditor.gadget and copy/paste
Home away from home
Home away from home


@kas1eQuote:
kas1e wrote:@Andy
Thanks a bunch ! It helps and clear code a lot. I do use WMHI_INTUITICK already for control ghosting/unghosting states, but with window active is still not that clear. We don't have LayoutActivateGadget, and LM_ACTIVATEGADGET (WM one instead) but you probably mean something like :


Er we do except that its ActivateLayoutGadget() but I the got OS dependency the wrong way round and you should indeed use the WM_ACTIVATEGADGET.
Quote:

// Check if another gadget is active in the top-level layout
                            
struct Gadget *layoutGadget = (struct Gadget *)resizableLayout;
                            if (!(
layoutGadget->Activation GACT_ACTIVEGADGET))
                            {
                                
// Activate the text editor gadget using the layout
                                
IIntuition->IDoMethod(resizableLayoutWM_ACTIVATEGADGET,
                                    (
struct Gadget *)textEditorwindowNULL);
                            }


?

This one didn't work, but this one works:

Well it wouldn't you just applied the WM_ACTIVATEGADGET to a layooutgadget, should be the window class object! Also the method structure takes just ME=ethodID and gadget so that should be:

IDoMethod(WindowObject,(struct Gadget *)textEditor);
Quote:


[quote]
// Check if mouse is over the text editor gadget
                        
if (mouseX >= editorLeft && mouseX editorTop && mouseY Activation GACT_ACTIVEGADGET))
                            {
                                
// Activate the text editor gadget directly
                                
IIntuition->ActivateGadget((struct Gadget *)textEditorwindowNULL);
                            }
                        }




You *should* use the WM_METHOD and not Activate gadget directly, as the active gadget in a window.class window is the layout not the any of it's children( the layout passes on events to the texteditor or whichever gadget it thinks is active)

If you do that then the texteditor should remain active after resizing the window.

Quote:

Anyway, that help only when the mouse over the texteditor , but texteditor not start to be active not after resize of window (because mouse not over it), not after i simple drag window (while it still active), not when i click on the toolbar gadget (but not toolbar buttons), and not when i simple iconify/deiconify, etc. I need it to react like this : if window is active , then texteditor gadget is active and cursor stays.

Same goes to cut/copy/paste : after it texteditor not active if i use toolbar buttons or menu when mouse outside of text editor.

So, thank you for idea with WHMI_INTUITICK, i make it as i want by this:

case WMHI_ACTIVE:
                    
// Set flag when window becomes active
                    
windowActive TRUE;
                    break;

                case 
WMHI_INTUITICK:
                    
// Activate text editor if the window is active and no other gadget is active
                    
if (window && windowActive)
                    {
                        
// Check if another gadget is active in the top-level layout
                        
struct Gadget *layoutGadget = (struct Gadget *)resizableLayout;
                        if (!(
layoutGadget->Activation GACT_ACTIVEGADGET))
                        {
                            
// Activate the text editor gadget directly
                            
IIntuition->ActivateGadget((struct Gadget *)textEditorwindowNULL);
                        }
                    }
                    break;


Then it works as expected ! Yahoo !

Go to top


Re: texteditor.gadget and copy/paste
Home away from home
Home away from home


@kas1e

Quote:

Is there a straightforward way to ensure the editor window remains active


Use a method like WMHI_INTUITICK to poll the Window->MouseX amd MouseY values then when the mouse id over the editgadget activate it with LayoutActivateGadget() (on OS4)

Check that another gadget is not active at the time by testing the toplevel layout

ie
if(!
((
struct Gadget *)layout) -> Activation GACT_ACTIVATEGADGET))
{
LayoutActivateGaget(layout,Window,editorgadget);
}


This stops you continuosly activateing the gadget and also stop it from steel foxus from another activated gadget just because the mouse moved over the editor,

Go to top


Re: texteditor.gadget and copy/paste
Home away from home
Home away from home


@kas1e

For scroller use GA_TextEdit_Prop_#? to get the top visible and total entries and use these to apply the equivalent SCROLLER attributes.

Go to top


Re: texteditor.gadget and copy/paste
Home away from home
Home away from home


@kas1e

Use The ARexx interface.

1 & 3

BOOL Copy(struct Gadget *editorgad)
{
 
    
struct GP_TEXTEDITOR_ARexxCmd gptac = {0}; 
    if(
editorgad_ptr )
    {
        
gptac.MethodID GM_TEXTEDITOR_ARexxCmd;
        
gptac.command = (STRPTR)"COPY";
        if(
DoGadgetMethodA(editorgad,Window,NULL,(Msg)&gptac))
        {
            return 
TRUE// Copy succeded 
        
}
    }
    return 
FALSE;
}


2

/* Paste from clipboard */

BOOL Paste(struct Gadget *editorgad_ptr)
{
    
struct GP_TEXTEDITOR_ARexxCmd gptac = {0}; 

    if(
editorgad_ptr)
    {
        
gptac.MethodID GM_TEXTEDITOR_ARexxCmd;
        
gptac.command = (STRPTR)"PASTE";
        if(
DoGadgetMethodA(editorgad_ptr,Window,NULL,(Msg)&gptac))
        {
            
SetFileModified();
            return 
TRUE// Paste succeded 
        
}
    }
    return 
FALSE;
}


Both these methods cleanly handle the GUI updates and need no extra libs like TextClip

Go to top



TopTop
(1) 2 3 4 ... 109 »




Powered by XOOPS 2.0 © 2001-2024 The XOOPS Project