#include "nextrom.h"
#include "video.h"
#include "mmu.h"
#include <algorithm>
#include <arch/cpu.h>
#include <boot/stage2.h>
#include <boot/platform.h>
#include <boot/menu.h>
#include <boot/kernel_args.h>
#include <boot/platform/generic/video.h>
#include <util/list.h>
#include <drivers/driver_settings.h>
#include <GraphicsDefs.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define TRACE_VIDEO
#ifdef TRACE_VIDEO
# define TRACE(x) dprintf x
#else
# define TRACE(x) ;
#endif
bool
video_mode_hook(Menu *menu, MenuItem *item)
{
return true;
}
Menu *
video_mode_menu()
{
Menu *menu = new(nothrow) Menu(CHOICE_MENU, "Select Video Mode");
MenuItem *item;
menu->AddItem(item = new(nothrow) MenuItem("Default"));
item->SetMarked(true);
item->Select(true);
item->SetHelpText("The Default video mode is the one currently configured "
"in the system. If there is no mode configured yet, a viable mode will "
"be chosen automatically.");
menu->AddSeparatorItem();
menu->AddItem(item = new(nothrow) MenuItem("Return to main menu"));
item->SetType(MENU_ITEM_NO_CHOICE);
return menu;
}
void
platform_blit4(addr_t frameBuffer, const uint8 *data,
uint16 width, uint16 height, uint16 imageWidth, uint16 left, uint16 top)
{
if (!data)
return;
}
extern "C" void
platform_set_palette(const uint8 *palette)
{
}
extern "C" void
platform_switch_to_logo(void)
{
if ((platform_boot_options() & BOOT_OPTION_DEBUG_OUTPUT) != 0)
return;
char fb_num = KM_CON_FRAMEBUFFER;
gKernelArgs.frame_buffer.width = mg->km_coni.dspy_w;
gKernelArgs.frame_buffer.height = mg->km_coni.dspy_h;
gKernelArgs.frame_buffer.bytes_per_row = mg->km_coni.bytes_per_scanline;
gKernelArgs.frame_buffer.depth =
std::max(4, 32 / mg->km_coni.pixels_per_word);
gKernelArgs.frame_buffer.physical_buffer.size =
mg->km_coni.map_addr[fb_num].size;
gKernelArgs.frame_buffer.physical_buffer.start =
mg->km_coni.map_addr[fb_num].phys_addr;
gKernelArgs.frame_buffer.enabled = true;
video_display_splash(mg->km_coni.map_addr[fb_num].virt_addr);
}
extern "C" void
platform_switch_to_text_mode(void)
{
if (!gKernelArgs.frame_buffer.enabled) {
return;
}
gKernelArgs.frame_buffer.enabled = false;
}
extern "C" status_t
platform_init_video(void)
{
gKernelArgs.frame_buffer.enabled = false;
return B_OK;
}